3

Недавно я задал вопрос на StackOverflow о MVC: Can the MVC Design Pattern/Architectural pattern be used in Desktop Application Development?MVC против наблюдателя шаблон

На основании ответа предоставленной я начал исследование о том, как это будет реализовано в виде приложения Windows. Я пришел к следующей статье CodeProject: http://www.codeproject.com/KB/cs/model_view_controller.aspx

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

Относительно второго и более важного вопроса: Я пытаюсь создать небольшую программу списка задач в .NET. Он будет очень крошечным и, надеюсь, быстрым. В целом, что было бы лучшей архитектурой для такого проекта? Шаблон наблюдателя или шаблон MVC? Или другой образец?

Спасибо

+0

@Mark: Спасибо, что зафиксировали название. Не могу поверить, что я этого не видел! :-) – 2008-11-21 05:24:02

+1

Эти определенные пользователи не знают, что такое шаблон наблюдателя. – mmcdole 2008-11-21 06:24:29

ответ

3

(В статье не приводится пример MVC AFAIK по той простой причине, что нет контроллер .. это более близко к .net привязки данных, если вы спросите меня.)
MVC не шаблон Observer , MVC занимается разделением проблем. Модель, вид и контроллер все выполняют одну работу и доверяют другим делать свои действия. В некотором смысле Контроллер «направляет» представление и сообщает ему, как реагировать на изменение (Pure MVC). Контроллер также соответствующим образом взаимодействует с моделью (чья ответственность заключается в инкапсуляции данных и обеспечении соблюдения ограничений/правил). В MVC контроллер является отправной точкой для всех действий - пользовательский ввод сначала принимается контроллером. Однако существуют такие варианты, как MVP, когда пользователь вводится первым, а затем выталкивается/синхронизируется с презентатором.

Образец наблюдения, где вы хотите посмотреть другой объект для изменения состояния. Таким образом, вы можете сказать, что события .net следуют шаблону наблюдателя.

Если он действительно крошечный, забудьте о шаблонах и просто закодируйте его, не беспокоясь об архитектуре ...Следуйте эвристические/принципы хорошего дизайна

Если вы столкнулись с проблемами проектирования или он начинает получать все сумбурно, а затем привести в шаблон батальонов.

+0

Для меня это вид, который «наблюдает» за контроллером (контролер уведомляет о том, когда что-то происходит) и рассказывает, как реагировать на изменение. – 2012-11-20 16:53:11

1

Я согласен, что статья не MVC. Это скорее реализация шаблона наблюдателя. Шаблон наблюдателя в .NET можно реализовать, используя события, которые были в случае статьи.

MVC требует класс контроллера, который контролирует, какое действие выполнять по запросу, сделанному либо из модели, либо из вида. Применение MVC - очень хорошая практика программирования, поскольку она значительно способствует разделению внимания. У вас будет более чистое, более расширяемое и более тестируемое приложение с mvc. Еще одно замечание: вы можете применить шаблон наблюдателя к MVC-приложению. Они не будут противоречить друг другу.

===========

Чтобы ответить на ваш второй вопрос: какой шаблон является лучшим? Я думаю, что подход к разработке программного обеспечения довольно ошибочен. Вы не должны слишком беспокоиться об этих вещах, пока не попадете в проблему. например Если этот объект меняет состояние, мне нужны эти другие объекты, чтобы реагировать на него, поэтому я бы использовал шаблон наблюдателя.

Если бы я был вами, я бы начал с первой части модели, а затем взял вещи оттуда.

Смежные вопросы