パターンについては比較的新しいので、すぐに WinForms のコンテキストで例を示しましょう。
私は基本的な MVP パッシブ ビュー構造を持っています。
public partial class UserView : Form, IUserView
{
public event EventHandler Save;
public UserView()
{
InitializeComponent();
new UserPresenter(new UserModel(), this);
}
}
public class UserPresenter
{
public UserPresenter(IUser model, IUserView view)
{
view.Save += (sender, e) => model.Save();
}
}
また
public partial class UserView : Form, IUserView
{
public event EventHandler Save;
public UserView()
{
InitializeComponent();
new UserPresenter(this);
}
}
public class UserPresenter
{
public UserPresenter(IUserView view)
{
var model = new UserModel();
//assuming I have the logic to bind property values from View to Model
view.Save += (sender, e) => model.Save();
}
}
私の質問は次のとおりです。
User
1) model 、 View 、または Presenterの具体的なインスタンスを誰が知っている必要がありますか?
2) その場合、どのようなメリットがありますか?
3) 私のモデルがビューに依存していないとします。その場合、View が Model を知っていると何が悪いのでしょうか? やっぱりUserView
プレゼンさせられUserModel
ますよね。
4) プレゼンターがモデルとビューのインターフェイスのみと対話する必要がある場合、イベントハンドラーを呼び出すmodel.Save
にはSave
、どこから具体的なインスタンスを取得しますModel
か?