C # Winforms, MVP архитектура - PullRequest
       3

C # Winforms, MVP архитектура

1 голос
/ 14 января 2010

Эй, выглядывает :-) (... извините, это немного долго)

Я занимаюсь разработкой приложения с использованием C # Winforms и шаблона MVP, это всего лишь относительно простое приложение - хотя оно выполняет довольно много работы, поэтому я считаю, что шаблон MVP очень помогает при организации кода.

Я создал экземпляр используемых моделей - экземпляр STATIC - в классе Program перед запуском WinForm. (Классы Model НЕ являются статическими классами ума)

Затем я создаю основную форму (View), которая создает ссылку на ее Presenter. (Все классы View / Presenter не являются статичными).

Мое обоснование статического экземпляра состоит в том, чтобы предоставить всему приложению доступ к одной и той же информации модели. А затем, когда приложение закрывается, я могу получить доступ к современным данным модели из класса Program и сохранить все, что нужно сохранить. Что приятно, так как хранит всю загрузку / сохранение в одном месте.

В любом случае будет только один экземпляр каждого класса Model, нет соединений с БД и что у вас есть.

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

У меня есть Потоки BackgroundWorker, которые делают разные вещи, но я не ссылаюсь ни на одну из Моделей в этих Потоках. Я передаю значение данных из Модели в поток. Затем поток передает обратно информацию, которая, если требуется, распространяется в соответствующую модель через основной поток.

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

Таким образом, код внутри представления выглядит так:

// this = ref to the view</p> <p>PresenterA p = new PresenterA( this, Program.ModelA ); ...

(Очевидно, что имена классов - это не просто PresenterA, ModelA и т. Д., Что было бы довольно глупо)

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

Если это так, могут ли те, кто выступает против этого, говорить сейчас или навсегда замолчать.

ТИА

(Кстати, я просто нуб, я не зарабатываю c # для жизни, это хобби)

: -)

Ответы [ 2 ]

2 голосов
/ 14 января 2010

см. Реализация MVC с Windows Forms для множества указателей на заданные вами параметры

Также рассмотрите возможность использования Внедрение зависимостей , чтобы избежать статических классов

0 голосов
/ 14 января 2010

Я бы использовал фреймворк, например MVCSharp .

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