MVP и IOC в Windows Forms? - PullRequest
       22

MVP и IOC в Windows Forms?

4 голосов
/ 12 ноября 2008

Я начал использовать шаблон MVP в приложении форм Windows для нескольких моих форм. Эти формы создают докладчика и передаются обратно докладчику.

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

Должен ли я изменить эту настройку, чтобы докладчики могли открывать другие формы (через представления)? Я полагаю, придется использовать каркас МОК для этого?

Это может избавить меня от необходимости использовать логику для открытия связанных форм в пользовательском интерфейсе и позволить мне удалять ссылки на докладчика из формы.

Ответы [ 2 ]

4 голосов
/ 14 ноября 2008

У вас должен быть отдельный класс, который отвечает за создание / управление формами. Я бы порекомендовал использовать шаблон Command для вызова кода, который открывает новую форму. В результате масштабирование будет намного лучше, и вы сможете изменить реализацию Command, чтобы выполнять разные действия. В моих проектах я просто делаю изменения данных в самой форме, но все, что взаимодействует с «приложением», делегируется объекту Command.

Вам НЕ НУЖНА среда IOC для этого, но это помогает. Если у вас просто есть простые потребности, вы можете сохранить их простыми.

У меня есть пример WinForms MVP на моем сайте здесь: ModelViewPresenter . Я не использую никаких контейнеров IOC, но структурирую код так, чтобы его использование было быстрым прыжком.

0 голосов
/ 12 ноября 2008

Я делаю то же самое с парой проектов winforms, один для работы и один для дома.

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

...