Что такое анемия в доменной модели?

Из того, что я могу понять из Мартина Фаулера, анемия означает отделение бизнес-логики от объектов домена, которые превращаются в тривиальные методы получения и установки, в то время как поведение домена перемещается на уровень обслуживания. Я что-то пропустил?

Как мы можем вызвать некоторый объектный домен, если он не имеет никакого поведения? Не могли бы вы предоставить очень краткий код модели анемичной области?

1 ответ

Решение

Это демонстрируется кодом где:

большая часть кода имеет дело с передачей структур данных (пакетов свойств, если хотите) под видом объектов домена (например, Account или TransactionEntity). Они являются "объектами домена" прежде всего потому, что у них есть имена вещей, которые существуют в домене.

Большая часть логики находится во внешних "сервисах" - которые содержат скрипты, которые работают со списками (или отдельными) структурами данных. В результате сервисам необходимо получить доступ / изменить внутреннюю информацию об объектах домена. Таким образом, объекты домена самопроизвольно прорастают из множества методов получения и установки. RIP-инкапсуляция.

Анемия относится к отсутствию или нехватке логики / поведения домена в классах домена.

Больше показателей:

  • Методы "Спроси" превосходят по численности методы "Говори / Делай"
Другие вопросы по тегам