我已經開始圍繞整個MVP模式進行包裝,儘管我對單個對象做的很好,但對於集合,它開始變得困難。MVP Passive View和監督控制器之間的實現差異
假設我們構建了一個簡單的WinForms應用程序,該應用程序由一個Form中的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; }
}
查看
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; }
}
}
演示
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;
}
}
所以,我應該查看的List<People> ListOfPeople
吸氣實施,以及應該怎麼調用演示的UpdateView()
?
而且一般,這額外的演示方法將是有趣的,有爲了實現MVP 被動視圖和分別監督控制器?
任何意見,代碼風格的審查或意見將真誠讚賞。非常感謝。
是的,我目前正試圖與MVPVM被動視圖界面嘗試和鼓勵TDD ,但同時有一個ViewModel來處理DataGridViews。 – Heliac