どのようなルールあなたはMVPのメソッドとメンバーを描写するために使用します

StackOverflow https://stackoverflow.com/questions/896779

  •  23-08-2019
  •  | 
  •  

質問

MVPパターンを使用する場合は、

、私は多くの場合、表示またはプレゼンタークラス内にうまく収まるように思えないメソッドとメンバーに遭遇して...私の質問は:ルールは、あなたがどのクラスにあるものの機能を決定するために使用するのですか?私はMVPに比較的新しいです、そうしてくださいユーモアくれます。

TIAます。

役に立ちましたか?

解決

私はこれが私のために非問題ですMVPのパッシブビューバリアントを好む傾向があります。パッシブビューパターンで見るほとんどの代表発表者への単純な割り当てよりも複雑なもの。

あなたはこのようになりますパターンで羽目になる

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の操作に帰着します。この方法は、個々のコントロールへの直接アクセスを多く構成されている場合、おそらくそれは、発表者に属します。それ以外の場合は、ビューに属します。目標は、ビューやソフトウェアの設計を満たすために必要な最低限の存在の間の相互作用を減少させることにあります。

Presenter.SetListTitle MyList.Name
For I = View.MyListStart to View.MyListEnd
   Presenter.AddListItem MyList(I)
Next I
Presenter.ShowListAddBUtton
Presenter.ShowListDelButton

以下のようにプレゼンタに配置してください
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
あなたのUIを変更することを決めた場合は、

後で、心配する必要はすべてがUpdateWithListないSetListTitle、AddListItem、などなどを実施してます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top