Применение MVC к дизайну, управляемому доменом - PullRequest
1 голос
/ 13 мая 2010

С практической точки зрения, как вы можете адаптировать модель предметной области к шаблону MVC? Например, могу ли я использовать некоторые классы-обертки?

1 Ответ

3 голосов
/ 13 мая 2010

Они на самом деле не связаны.

MVC - это шаблон проектирования для разделения задач хранения данных (модели), представления различных представлений данных (представления) и взаимодействия с этими данными (контроллером). Хотя это может быть шаблон «дизайна», на самом деле речь идет о дизайне кода. Представления обычно, но не обязательно, используются для графического интерфейса.

Domain-Driven Design - это стиль проектирования программного обеспечения, в котором вы сосредоточены на моделировании домена для создания общей понятной модели проблемной области - «модели домена». Доменно-управляемый дизайн - это не просто «дизайн», но также представлен в коде, требованиях, разговорах между различными заинтересованными сторонами и т. Д.

Таким образом, вы бы не «адаптировали» одно к другому, хотя вы наверняка можете реализовать MVC, используя объекты из вашей доменной модели. Например, если вы смоделировали сущность BankAccount и написали для нее соответствующий класс, вы можете использовать ее в качестве модели в триаде MVC. Возможно, контроллер обрабатывает ввод и снятие наличных, и некоторые виды (например, дебет, кредит и сводный вид) обновляются при изменении модели. Существует множество разновидностей MVC, и в зависимости от того, что вы выберете, вы можете изменить модель своего домена. Например, вы можете использовать шаблон наблюдателя, где ваши представления уведомляются всякий раз, когда изменяется модельный объект. Это означает, что вы будете смешивать не доменные понятия (регистрация наблюдателя, уведомление и т. Д.) В свой доменный объект. В этом случае может быть лучше обернуть объект домена, чтобы сохранить четкое разделение между моделью домена и уровнем представления, если это важно для вас. Возможно, это то, что вы подразумеваете под «адаптацией» одного к другому.

...