Анемічна модель - це просто контейнер даних. Він не містить поведінки. (Це насправді може вважатися хорошою функціональною парадигмою.) Протилежність анемічної моделі є не є модель, яка вводиться повним доменним сервісом. Ви описуєте дві крайності - обидва погані.
Якщо у вас є анемічна модель, ви не повністю використовуєте те, що пропонує OOP. Якщо ви почнете вводити служби в ці моделі, ви, швидше за все, додаєте проблеми, які там не належать. Або це, або ваша модель більш анемічна, ніж ви думаєте. Чому б ще вам потрібна послуга, крім того, що вона пропонує щось необхідне, але відсутнє? (Відсутність може означати анемію.)
Уникнення обох "розповідей" призводить до більш міцного дизайну. Чи є у вас щось у сервісі, яке потребує модель? Можливо, це слід перенести на модель. Якщо ні, можливо, вам слід переглянути свої проблеми. Поведінка моделі повинна працювати всередині моделі. Він повинен головним чином (якщо не тільки) стосуватися себе членів. Але пам’ятайте, все одно знайдуться речі, які працюють над моделлю або з нею. Наприклад, моделі не повинні відкривати TCP-з'єднання або слухати події в інтерфейсі, навіть якщо вони якось пов'язані. Це чужа відповідальність і за те, що хтось ніколи не належить всередині моделі.