Comencé a guiarme por todo el patrón MVP ya pesar de que me está yendo bien con los objetos individuales, se empieza a poner difícil cuando se trata de colecciones.Diferencias de implementación entre MVP Passive View y Supervisoring Controller para colecciones
Digamos que estamos diseñando una aplicación WinForms simple que consiste en un DataGrid dentro de un Formulario, con el Modelo de datos como una simple colección de cosas, donde ese tipo de cosas tiene un montón de propiedades y la Vista va en realidad mostrarlos:
Modelo
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; }
}
Ver
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; }
}
}
Presentador
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;
}
}
Entonces, ¿qué debería implementar al List<People> ListOfPeople
captador de vista, así como cómo debería invocar Presentador de UpdateView()
?
Y, en general, que los métodos del presentador adicionales sería interesante tener a fin de lograr el MVP pasiva Ver y Supervisar controlador, respectivamente?
Cualquier consejo, revisión u opinión del estilo del código será sinceramente agradecido. Muchas gracias de antemano.
Sí, actualmente estoy tratando con MVPVM Ver las interfaces pasivas para tratar de animar a TDD , pero al mismo tiempo tiene un ViewModel para manejar DataGridViews. – Heliac