2008-10-11 3 views
1

Какова максимальная разбивка ответственности при использовании виртуальной сетки и шаблона MVP в приложении winforms.Модель - View - Presenter с виртуальной сетью

в том числе:

  1. Получение обратных вызовов из сети на пользователя изменены обновлений CELL
  2. Обратный звонок из сетки, чтобы установить стиль и значение ячейки заданной строки и столбца

ответ

1

конкретных обязанностей в многочисленных моделях, которые упоминаются как Model-View-Presenter варьироваться. В основном они различаются в зависимости от того, какой контроль над представлением представлен ведущим. Мартин Фаулер подробно обсуждает ряд различных вариантов в своей главе на GUI Architectures, это стоит прочитать.

Посмотрите на Presenter First, так как он касается адаптеров и обязанностей на некоторой глубине.

И стоит Passive View и Supervising Controller.

модель (или модель предметной области) == логическое представление сущностей, участвующих в системе, включая их состояние и поведение

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

вид == представление: визуальное представление модели, пользователь может взаимодействовать, сбор пользовательского ввода

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

0

If Я правильно понимаю вас, сетка является частью реализации представления и не видна ведущему. В этом случае ведущему не нужно знать, как отображаются данные, только как их предоставить.

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

Сотрудничество будет что-то вроде:

< сетки - хелперы < - вид < -> ведущего

Смежные вопросы