Я начал обдумывать весь паттерн MVP , и, несмотря на то, что у меня все хорошо с отдельными объектами, когда дело доходит до этого, становится все труднее в коллекции.
Итак, предположим, мы создаем простое приложение WinForms, которое состоит из DataGrid внутри формы, причем модель данных представляет собой простую коллекцию вещей, где такие вещи имеют набор свойств, а View будет фактически отображать их:
Модель
public class Person
{
public string Name { get; set; }
public DateTime Birth { get; set; }
public bool IsCool { get; set; }
}
public class People
{
public List<Person> Persons { get; set; }
}
View
public interface IPeopleView
{
List<People> ListOfPeople { get; set; }
}
public partial class PeopleViewImpl : Form, IPeopleView
{
private DataGridView _grid = new DataGridView();
public PeopleViewImpl()
{
InitializeComponent();
}
// Implementation of IPeopleView
public List<People> ListOfPeople
{
get { return /* TODO */; }
set { _grid.DataSource = value; }
}
}
Presenter
public class PeoplePresenter
{
private People _model;
private IPeopleView _view;
public PeoplePresenter(People model, IPeopleView view)
{
_model = model;
_view = view;
}
void UpdateView()
{
_view.ListOfPeople = _model.Peoples;
}
}
Итак, что я должен реализовать в получателе View List
, а также как мне вызвать Presenter's UpdateView ()
?
И вообще, какие дополнительные методы Presenter были бы интересны для достижения MVP Passive View и контролирующего контроллера соответственно?
Любой совет, код будут искренне признательны за обзор стиля или мнение. Заранее большое спасибо.