Что такое анемия в доменной модели?
Из того, что я могу понять из Мартина Фаулера, анемия означает отделение бизнес-логики от объектов домена, которые превращаются в тривиальные методы получения и установки, в то время как поведение домена перемещается на уровень обслуживания. Я что-то пропустил?
Как мы можем вызвать некоторый объектный домен, если он не имеет никакого поведения? Не могли бы вы предоставить очень краткий код модели анемичной области?
1 ответ
Это демонстрируется кодом где:
большая часть кода имеет дело с передачей структур данных (пакетов свойств, если хотите) под видом объектов домена (например, Account или TransactionEntity). Они являются "объектами домена" прежде всего потому, что у них есть имена вещей, которые существуют в домене.
Большая часть логики находится во внешних "сервисах" - которые содержат скрипты, которые работают со списками (или отдельными) структурами данных. В результате сервисам необходимо получить доступ / изменить внутреннюю информацию об объектах домена. Таким образом, объекты домена самопроизвольно прорастают из множества методов получения и установки. RIP-инкапсуляция.
Анемия относится к отсутствию или нехватке логики / поведения домена в классах домена.
Больше показателей:
- Методы "Спроси" превосходят по численности методы "Говори / Делай"