Глоссарий
Anemic Domain Model
Домен-объекты состоят только из данных без поведения. Логика живёт в отдельных сервисах. Fowler назвал это антипаттерном в 2003.
Anemic Domain Model — паттерн (Fowler называет антипаттерном), при котором объекты домена содержат только геттеры и сеттеры, а вся бизнес-логика — в отдельных Service-классах.
Признаки:
User— толькоid,name,email+ getters/setters.UserService.change_email(user, new_email)— вся логика тут.- Никаких методов на самих сущностях, никаких инвариантов.
Fowler (2003):
The fundamental horror of this anti-pattern is that it’s so contrary to the basic idea of object-oriented design; which is to combine data and process together.
Проблема: инварианты не защищены — любой Service может присвоить произвольное значение. Поведение размазано по нескольким сервисам.
Когда оправдан: сервисы-оркестраторы (ETL, message routers), где нет собственных бизнес-правил. Всё, что делает сервис — координация. В этом случае «настоящий» domain находится в других сервисах.