Выбрал реализацию контроллера представления моей не анемичной модели предметной области - PullRequest
2 голосов
/ 28 января 2012

Название может быть непростым для понимания, но мне кажется, что это основной вопрос дизайна при работе со смарт-моделями.

У меня есть иерархия объектов модели, которые представляют разные типы документов. Скажем, у меня есть представление с разными кнопками, каждая из которых открывает документ базовой объектной модели. Когда я нажимаю на кнопку, мне нужно отобразить представление, реализация контроллера которого зависит только от базового класса объекта модели. Как мне получить эту реализацию? (Это может быть в реализации кнопки, но тогда возникает вопрос, как мне получить реализацию кнопки)

Должно ли это быть фабрика, которая принимает в качестве входных данных тип моей модели и возвращает мой контроллер вида? Должна ли это быть моя модель, которая знает, как построить свой контроллер (кажется грязным?)? Должен ли я использовать композицию? Что-то еще?

Надеюсь, я достаточно ясен. Я немного борюсь с этим!

1 Ответ

0 голосов
/ 20 февраля 2012

Ваш вопрос слишком абстрактен, чтобы дать конкретный совет. Шаблон MVC появляется во многих формах и во многих технологиях. Для веб-страницы она будет иметь одну форму, для приложения WPF - другую. В общем случае существуют подходы «сначала вид» и «сначала контроллер». Вы можете начать с любого и посмотреть, если это естественно для вашей проблемы, если нет - рефакторинг.

Еще одна область, которую вы можете исследовать, - это область современных композитных прикладных сред, которые предоставляют готовые модульные решения MVC \ MVVM. Если вы пишете для Интернета, прочитайте о ASP.NET MVC и его лучших практиках. Если вы пишете для WPF, прочитайте о подходе MVVM и посмотрите, например, Prism . Вы можете обнаружить, что ваша проблема уже решена с помощью существующих инструментов.

...