Проектирование доменной модели с помощью шаблона “Агрегат” из DDD¶
В традиционном ООП доменная модель описывает набор классов и отношения между ними, например

Этот пример содержит несколько классов, соотносящихся с бизнес-объектами: Consumer, Order, Restaurant и Courier. Как видно, в модели не хватает чётких границ между разными бизнес-объектами. Например, не видно, какие классы входят в бизнес-объект Order.
Расплывчатые границы могут привести к проблемам.
Например, мы хотим выполнить с объектом Order операцию, такую как загрузка или удаление. Что именно это означает? Какова область применения этой операции? Какие классы должны быть затронуты? Модель не определяет этого.
Также отсутстствие чётких границ может вызвать проблемы при обновлении бизнес-объекта. Типичный бизнес-объект имеет инварианты — правила, которые должны соблюдаться. При этом соблюдение инвариантов может сильно усложнить бизнес-логику, чтобы обновление частей бизнес-объекта не нарушило инварианты. Агрегаты из DDD призваны решить эти проблемы.
Дата создания : 27 июля 2022 г.