Re: MVP и MDI
От: Qulac Россия  
Дата: 28.05.16 14:06
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>MVP с одним окошком проблем не вызывает.

AN>А вот с двумя никак не придумаю, как лучше.
AN>Проблема в том, что для вставки документа нужно иметь "указатель" на документ.
AN>А ни интерфейсу вьюва ни презентеру "не положено знать" об используемой технологии GUI. Ну типа того — сегодня винформс, завтра впф.

Значит нужен кто-то третий, кто все это будет знать.

AN>Пока приходится всё в форме делать.

AN>...
AN>Хотя пожалуй, только что придумал, что скажете?

AN>Главная форма говорит своему презентеру "создай новое окошко".

AN>Презентер "говорит" интерфейсу вьюва "создай новое окошко", а в ответ получает презентер нового окошка.

Если все просто, то вполне подходящее решение. Я вообще в mvp и mvvm использую такой подход: есть служебный класс который занимается создание форм и связыванием со все остальным, его можно так же связать с ioc-контейнером. Вот примерный код:

public static class WindowService
 {
   //регистрируем тип формы и презентера. Вызывается в начале метода Main для каждого класса формы
   public static void Register<TView,TPresenter>()
   {
   }
   // отображает форму и возвращает ее объект.
   public statiс TView Show<TPresenter,TView>(){}
 }

  public class PresenterBase
  {
   private IView _view;
   private Model _model;
   
   public PresenterBase()
   {
    _view= WindowService.Show<PresenterBase,IView>();
    _model=new Model();
   }
  }


Просто, минимум когда, можно допелить под любые потребности.
Программа – это мысли спрессованные в код
Отредактировано 28.05.2016 15:54 Qulac . Предыдущая версия . Еще …
Отредактировано 28.05.2016 14:14 Qulac . Предыдущая версия .
Отредактировано 28.05.2016 14:07 Qulac . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.