Изменения документа Анемичная или богатая модель
Редактировал(а) Alexandr Fokin 2026/09/15 12:50
От версии 2.9
отредактировано Alexandr Fokin
на 2026/09/15 12:50
на 2026/09/15 12:50
Изменить комментарий:
К данной версии нет комментариев
К версии 2.1
отредактировано Alexandr Fokin
на 2024/01/04 20:21
на 2024/01/04 20:21
Изменить комментарий:
Renamed back-links.
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,11 +1,10 @@ 1 1 | |((( 2 -DotNext | Максим Аршинов — Блеск и нищета предметной области ([[DDD ~| Domain-driven design>>doc:Архитектура и модели.Группа\. Архитектурные подходы.DDD | Domain-driven design.WebHome]], [[Expression tree~| Деревья выражений>>doc:Разработка.NET.C#.Рантайм и типы.Expression tree | Деревья выражений.WebHome]], [[F#>>doc:Разработка.NET.F#.WebHome]], [[Работа с БД>>doc:Разработка.NET.Работа с БД.WebHome]])2 +DotNext | Максим Аршинов — Блеск и нищета предметной области ([[DDD | Domain-driven design>>doc:Архитектура и модели.Группа\. Архитектурные подходы.DDD | Domain-driven design.WebHome]], [[Expression tree | Деревья выражений>>doc:Разработка.NET.C#.Рантайм и типы.Expression tree | Деревья выражений.WebHome]], [[F#>>doc:Разработка.NET.F#.WebHome]], [[Работа с БД>>doc:Разработка.NET.Работа с БД.WebHome]]) 3 3 [[https:~~/~~/www.youtube.com/watch?v=rFiuLeSFZsA>>https://www.youtube.com/watch?v=rFiuLeSFZsA]] 4 4 ))) 5 5 | |Анемичная и «Богатая» модель в контексте [[GRASP>>doc:Архитектура и модели.Паттерны проектирования.GRASP.WebHome]] шаблонов (#22 выпуск подкаста DotNet&More) 6 6 [[https:~~/~~/habr.com/ru/post/470021/>>https://habr.com/ru/post/470021/]] 7 7 | |[[Целостность агрегатов>>doc:Архитектура и модели.Группа\. Архитектурные подходы.Группа\. Свойства\..Тема\. Целостность агрегатов.WebHome]] 8 -| |[[Мнение>>doc:.Мнение.WebHome]] 9 9 10 10 ---- 11 11
- XWiki.XWikiComments[0]
-
- Комментарий
-
... ... @@ -1,5 +1,1 @@ 1 1 Мнение автора: на основании своего опыта я выступаю скорее за анемичную модель: когда сущность в основном контейнер для данных, почти не содержащий логику, и наборе команд/сервисов для взаимодействия с ними (и именно на команды ложиться ответственность за сохранение консистентности агрегатов). 2 -\\Для меня вполне допустим следующий вариант: в доменной логике мы не создаем и не редактируем сущности напрямую, а делаем это через ISetter компонент. В контракт конкретного ISetter мы закладываем способы создания и изменения сущности. В таком случае у нас есть компонент, который указывает на контракт и допустимые способы взаимодействия с конкретной сущностью. 3 -Пример поведения, располагаемого в ISetter: 1) типизированные билдеры под конкретные сценарии использования (инварианты), 2) взаимодействие со связанными сущностями (родительская-дочерняя) (добавление, смена родительской сущности), 3) вычисляемые свойства (которые меняются при изменении полей). 4 - 5 -У этого подхода еще есть плюс, связанный с ExpressionTree. А именно мы легко можем строить Expression (например для проекции или Update запроса) (открытые setter).