我想在這裏分析一些代碼,一直使用MVP方法設計的。沒有使用特定的MVP框架。這是所有手寫代碼。這是一個有效的MVP模式實現
//Interface Representing our View
public interface IFooView
{
string SomeScreenValue
}
//Presenter Implementation
public class FooPresenter
{
private readonly IFooView _view;
public FooPresenter (IFooView view)
{
//The presenter gets instantiated with a reference to a view.
_view = view
}
public void SomeButton_Click(object sender, EventArgs e)
{
_view.SomeScreenValue = "The Result";
}
}
//The Page Implementation
public class FooPage : System.Web.UI.Page, IFooView
{
private FooPresenter _presenter;
protected void Page_Init(...)
{
_presenter = new FooPresenter(this);
//<-- The View has a Presenter, which references the same View...
Button1.Click += new EventHandler(_presener.SomeButton_Click);
}
}
它的作用在於,它允許開發人員將業務邏輯從代碼背後移到類中,同時仍影響視圖。但是實際模型的缺乏以及設置View => Presenter => View關係的方式對我來說有點令人討厭?
那麼,上述情況的有效實現MVP模式的?
那麼在這個例子中究竟是什麼「模型」。或者,模型就是用於從中獲取數據的不同數據源的鬆散分組。 –
@EoinCampbell我已經更新了我的回答 – ColinE
好的。說得通。上面的例子是從一個簡單的UI屏幕中提取的,該屏幕從文本框和DDL中獲取3或4個值,使用查詢命中DataAccess Manager並獲取綁定到GridView的結果集。隨後的調用可能包括分頁和訂單子句,但它本質上是一個簡單的Populate-GridView屏幕,直接從演示者調用DAL。 –