доменно-ориентированный дизайн — для DDD в PHP как мы точно защищаем методы объекта в агрегате, который не является корневым?

Для DDD в PHP, как мы точно защищаем методы на объекте в совокупности, которая не является корнем? Как мы защищаем их от использования вне агрегата (поскольку должны использоваться только методы в корне агрегата)?

Бонус: Кроме того, это нормально иметь дублирующиеся объекты? Я имею в виду, где говорят, что идентичные товар класс сущностей является дочерним в двух отдельных совокупностях? Оба эти товар классы имеют одинаковое поведение / правила для работы с концепцией домена «продукт». Но я продублировал класс, потому что, опять же, сущности не должны быть доступны вне их совокупности.

2

Решение

Вы не выставляете эти сущности, в основном ваш AR не должен быть в состоянии вернуть его экземпляр. Но на практике у меня не было этой проблемы главным образом потому, что мои агрегаты на 99% состоят из 1 сущности + куча объектов-значений.

Бонус: ваши агрегаты определяют понятия. Сущности и объекты значений — это просто технические термины для объектов, которые имеют деловое значение, поэтому они являются реализациями концепций. Концепция Продукта должна быть уникальной в ограниченном контексте.

Когда другая концепция каким-то образом ссылается (что не означает, что она содержит) на продукт, она фактически имеет дело с идентификатором продукта, который опять-таки является скорее технической деталью реализации. С точки зрения бизнеса, у вас есть одна уникальная концепция (совокупность) для каждого контекста.

Поскольку агрегат должен содержать только объекты, которые определять Концепция, в которой дубликаты сущностей используются внутри агрегата, является признаком неправильного моделирования на 99,99%.

Агрегат — это не просто группа сущностей, где одна сущность выступает в качестве контейнера для других. Это на 100% неправильно. Агрегат состоит из всех объектов необходимый правильно определить бизнес-концепцию. Совокупный корень Никогда контейнер, это объект, отвечающий за поддержание совокупной согласованности (вот почему вы должны работать только с ним).

Для родителей, имеющих детей, есть база данных и шаблон хранилища.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]