Разделение форм Windows и классов C # - PullRequest
6 голосов
/ 14 декабря 2010

Я ищу способ разработки приложения на C #.Я понимаю трехуровневую модель, но не знаю, как применить это в хорошем дизайне C #.

Я посмотрел некоторые учебники asp.net по mvc, но я ищу учебник по Windows-форме.

Есть ли книга или веб-сайт, чтобы узнать, как это реализовать?

Ответы [ 3 ]

3 голосов
/ 14 декабря 2010

Я считаю, что традиционный MVC излишним для WinForms.Форма - это представление, и редко требуется отдельный контроллер.Модель - это просто класс (обычно реализующий INotifyPropertyChanged).Вы можете использовать привязку данных для уведомления о том, что модель изменилась.

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

Избегайте превращения модели в Объект Бога .Он может делегировать внутренне другим классам.

РЕДАКТИРОВАТЬ: Вы можете рассмотреть возможность перемещения связанных данных в отдельный объект, принадлежащий модели.Я бы назвал это презентационной моделью , но я не хочу вкладывать слова в рот Фаулеру.

РЕДАКТИРОВАТЬ2: Важно - модель должна иметь НЕТ ЗНАНИЙ вида и НЕТ кода пользовательского интерфейса (например, диалогов).

1 голос
/ 14 декабря 2010

первое, что вы должны знать, это то, что шаблоны проектирования не являются универсальными, и поэтому не существует такого понятия, как «способ реализации шаблона проектирования».

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

Я рекомендую вам взглянуть на DoFactory веб-сайт, который широко освещает множество шаблонов проектирования.

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

0 голосов
/ 14 декабря 2010

Привет, если вы используете Win Forms, я рекомендую вам перейти на шаблон MVP.Есть еще один шаблон MVVM (который в основном используется для WPF и Silverlight), но я не знаю, применим ли он к Win Forms.

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