Анемичная модель данных (ADM против RDM) - PullRequest
0 голосов
/ 18 марта 2012

Я пытаюсь понять различия между ADM и RDM.

То, как я это вижу, - это обсуждение adM и RDM, все сводится к тому, где вы на самом деле определяете свой рабочий процесс (совместную работу объектов).RDM внедряет объект хранилища данных и объект проверки в конструкторы бизнес-объекта (модели).Затем методы бизнес-объекта определяют рабочий процесс для обеспечения совместной работы этих объектов.

ADM передает все эти взаимодействующие объекты (модель, хранилище, объект проверки в viewModel / controller и т. Д. Методы viewmodel / controller определяютКоллаж рабочего процесса между объектами.

Это правильно или я упускаю что-то более фундаментальное?

1 Ответ

3 голосов
/ 19 марта 2012

Я предполагаю, что RDM = Богатая Модель Домена.Основное различие между ADM и RDM (которое фактически является «реальной» моделью предметной области) состоит в том, что RDM моделирует бизнес-процессы (проблемы и решения, для которых было разработано приложение) настолько естественными, насколько это возможно.

Модель предметной области моделирует поведение бизнеса, в то время как анемичная модель состоит в основном из POCO, которые содержат данные, в основном имитируя таблицу базы данных.Затем эти POCO используются почти процедурным образом, проверяются и обрабатываются службами (которые во многих случаях являются просто статическими методами).

В двух словах, ADM состоит из объектов, которые не содержат (или очень мало)В своем поведении они действуют только как пакеты данных, а RDM моделирует бизнес-процессы настолько точно и естественно, насколько это возможно.Большую часть времени анемичный домен является следствием подхода, ориентированного на БД, где все начинается и вращается вокруг БД.

Контроллеры, представления и контейнеры DI - это просто детали реализации.

...