Изменения документа Анемичная или богатая модель

Редактировал(а) Alexandr Fokin 2026/09/15 12:50

От версии 2.10
отредактировано Alexandr Fokin
на 2026/09/15 12:50
Изменить комментарий: Удаленный объект
К версии 2.9
отредактировано Alexandr Fokin
на 2026/09/15 12:50
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

XWiki.XWikiComments[0]
Автор
... ... @@ -1,0 +1,1 @@
1 +XWiki.cccc1808
Комментарий
... ... @@ -1,0 +1,5 @@
1 +Мнение автора: на основании своего опыта я выступаю скорее за анемичную модель: когда сущность в основном контейнер для данных, почти не содержащий логику, и наборе команд/сервисов для взаимодействия с ними (и именно на команды ложиться ответственность за сохранение консистентности агрегатов).
2 +\\Для меня вполне допустим следующий вариант: в доменной логике мы не создаем и не редактируем сущности напрямую, а делаем это через ISetter компонент. В контракт конкретного ISetter мы закладываем способы создания и изменения сущности. В таком случае у нас есть компонент, который указывает на контракт и допустимые способы взаимодействия с конкретной сущностью.
3 +Пример поведения, располагаемого в ISetter: 1) типизированные билдеры под конкретные сценарии использования (инварианты), 2) взаимодействие со связанными сущностями (родительская-дочерняя) (добавление, смена родительской сущности), 3) вычисляемые свойства (которые меняются при изменении полей).
4 +
5 +У этого подхода еще есть плюс, связанный с ExpressionTree. А именно мы легко можем строить Expression (например для проекции или Update запроса) (открытые setter).
Дата
... ... @@ -1,0 +1,1 @@
1 +2023-07-30 07:36:33.660