MVPパターンを使用すると、ViewクラスまたはPresenterクラス内にうまく収まらないメソッドやメンバが出てくることがよくあります。どんな機能がどのクラスにあるのかを判断するのに使いますか?私はMVPには比較的新しいので、私をユーモアしてください。MVPのメソッドとメンバを定義するために使用する規則
TIA。
MVPパターンを使用すると、ViewクラスまたはPresenterクラス内にうまく収まらないメソッドやメンバが出てくることがよくあります。どんな機能がどのクラスにあるのかを判断するのに使いますか?私はMVPには比較的新しいので、私をユーモアしてください。MVPのメソッドとメンバを定義するために使用する規則
TIA。
MVPのパッシブビューバリアントを好む傾向があるので、これは私にとっては問題ではありません。受動的なビューパターンでは、Viewはプレゼンターへの単純な割り当てよりも複雑なものをかなり委譲します。
あなたはこのようになりますパターンで羽目になる:あなたは、フォーム上のデータグリッドを持っている場合のみ、トリック部分がある
public class MyView: IView
{
private MyPresenter Presenter;
private OnEvent()
{
Presenter.DoSomething();
}
public string MyProperty
{
get{ return UIControl.Property;}
set{ UIControl.Property = value}
}
}
public interface IView
{
public string MyProperty{ get; set;}
}
public class MyPresenter
{
private IView view;
public void DoSomething()
{
...
view.MyProperty = something;
}
}
。これらは、パッシブビューパターンに適合させるために多くの作業を必要とします。
これは、UIの操作がどれだけ進んでいるかにかかっています。メソッドが個々のコントロールへの直接的なアクセスを多く含む場合、おそらくそれはプレゼンターに属します。それ以外の場合はビューに属します。目標は、ビューと現在の間の相互作用を、ソフトウェアの設計を満たすために必要な最小限に抑えることです。
あなたのUIを変更することを決めた場合、あなたが心配する必要はすべてがSetListTitle UpdateWithListがない実装されてその後
Public Sub UpdateWithList(MyList as AList, View as AView)
Me.SetListTitle MyList.Name
For I = View.MyListStart to View.MyListEnd
Me.AddListItem MyList(I)
Next I
Me.ShowListAddBUtton
Me.ShowListDelButton
End Sub
以下のように例えば
Presenter.SetListTitle MyList.Name
For I = View.MyListStart to View.MyListEnd
Presenter.AddListItem MyList(I)
Next I
Presenter.ShowListAddBUtton
Presenter.ShowListDelButton
がプレゼンターに配置する必要があり、AddListItem、
MVCではありませんか? –
@Vinegar:彼はModel View Presenterを意味すると思う(http://en.wikipedia.org/wiki/Model_View_Presenter) –