DDD: соглашение о пространствах имен модели домена

Я пишу приложение с моделью предметной области на PHP, и мне интересно, какое соглашение об именах мне следует принять.

Допустим, у меня есть Заказчик , имеющий адрес в его совокупном корне.
У меня также есть Продукт с параметром в его агрегированном корне.

У меня есть две альтернативы:

  1. Хранить агрегированные корни в корне модели предметной области :

     Клиент
    Заказчик \ Адрес
    Товар
    Продукт \ Вариант
     

    Pro : я могу использовать как Customer , так и Product в одном пространстве имен.
    Con : Клиент должен ссылаться на свой собственный адрес как Customer \ Address

  2. Сгруппировать все совокупные классы в одном пространстве имен, включая совокупный корень:

     Клиент \ Клиент
    Заказчик \ Адрес
    Продукт \ Продукт
    Продукт \ Вариант
     

    Pro : Клиент может ссылаться на свой адрес как Адрес
    Con : из моего пространства имен корневого домена я должен ссылаться на:

    • Клиент как Клиент \ Клиент
    • Продукт как Продукт \ Продукт
10
задан hakre 20 December 2012 в 21:20
поделиться