Skip to main content

Що таке «Anemic Domain Model»?

Anemic Domain Model (анемічна доменна модель) - це антипатерн, за якого доменні об'єкти містять лише дані, але не поведінку.

Ознаки:

  1. Сутності - просто набори полів із геттерами і сеттерами.
  2. Уся бізнес-логіка винесена в сервіси чи контролери.
  3. Порушено принцип Encapsulation - дані «голі», а поведінка розмазана.

Приклад:

python
order.status = "paid" # замість order.pay()

Проблема: код втрачає зв'язок з бізнес-сенсом, правила дублюються, тестувати важко. DDD-рішення: повернути поведінку в домен - щоб об'єкти не описували дані, а діяли як учасники бізнес-процесу.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.