Контроллер представления модели C # - PullRequest
0 голосов
/ 03 марта 2009

Итак, я создаю приложение C # / Winforms в шаблоне модель-представление-контроллер. Мой view-контроллер должен создавать несколько групп объектов. Группы объектов являются элементами модели и элементами представления. Например, текстовое поле и модель для этого текстового поля.

Мне интересно, лучший ли способ сделать это - поместить все в какую-то коллекцию и связать их вместе с ключом?

Ответы [ 3 ]

3 голосов
/ 04 марта 2009

В приложениях WinForm MVC, которые я создал, я обычно не позволяю контроллеру создавать какие-либо экземпляры (я пытаюсь не допустить ключевое слово «new» в мои контроллеры).

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

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

Надеюсь, это имеет смысл.

0 голосов
/ 05 марта 2009

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

0 голосов
/ 03 марта 2009

Рассматривали ли вы использование WPF вместо WinForms? У него более приятная MVC-подобная модель и встроенная привязка данных, которая намного мощнее. Это, вероятно, решит вашу проблему и, кроме того, поможет вам построить более современные технологии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...