Что представляет собой богатую доменную модель в POJO/POCO?

В чем разница между

  • Простой класс полей-accesors-mutators
  • Класс с богатой моделью

Что представляет собой богатое моделирование в классах бизнес-домена?

Ответ 1

"Богатый", как используется здесь, означает "богатое поведение" (в отличие от состояния).

Существует техническое поведение и поведение домена. Аксессоры и мутаторы являются техническими; им не хватает "почему", что определяет бизнес-интерес.

Объекты домена представляют собой "почему" и инкапсулируют "как". Фактически, все объекты делают это; объекты домена делают это специально для бизнес-ценности.

Скажем, вы, как объект домена сотрудника, должны запросить выходной день. У вас есть 2 варианта:

  • Расскажите своему менеджеру, и он отмечает расписание.
  • Обратитесь к своему менеджеру за расписанием и отметьте его.

Модель 1 богата. "Почему" (время отпуска) инкапсулирует "как" (обозначение расписания).

Модель 2 переопределяет менеджера в простой пакет свойств и устраняет абстракцию планирования.

Ответ 2

Когда ваша бизнес-логика инкапсулирована в бизнес-объекты. Другими словами, у вас есть уровень Business Objects (Domain Model), без необходимости использования отдельного уровня бизнес-логики.