0

私は伝統的に次のようにModel-View-Presenter[パッシブビュー]を実装してきました。

interface IView
{
string Title {set;}
}

class frmTextBox : Form, IView
{
...
public string Title
{
set { this.txtTitle.Text = value; }
}
...
}


class frmLabel : Form, IView
{
...
public string Title
{
set { this.lblTitle.Text = value; }
}
...
}

class Presenter
{
private IView view;
...
public void UpdateTitle
{
this.view.Title = "A Good Title";
}
...
}

また、ビューでのみプリミティブ型を使用する必要があることを常に理解していたため、従来はインターフェイス(、、)でプリミティブ型のみを使用していましIViewint。リポジトリ(など)で、のアイテムのリストを表示する場合は、モデルからプレゼンターにジェネリックコレクション()を渡す必要があります。これは、プリミティブ型のみで構成されているというビューの背後にあるルールに違反しますか、それともアーキテクチャ的には問題ありませんか?stringboolNHibernateDataGridViewIList<T>

私がデータ転送オブジェクト(DTO)を持っていたとしても、それは私が実装しようとしているパッシブビュースタイルというよりはむしろ監視コントローラーになります。

考え?

4

2 に答える 2

2

他の人の経験に基づいてソリューションを設計するのに役立つパターンが存在します。

それらは形式化されたテンプレートにすぎません。

任意の定義に完全に適合していなくても、生産性を高める構造を使用してください。

于 2010-08-11T02:13:31.413 に答える
2

うわー多分私は多くを逃してきました。ビューがプリミティブ型のみの表示に制限されているのを見たことがありません。

この制限が使用される理由とその利点について知りたいのですが。「IMOは完全に間違っている」と言っているわけではありませんが、そのメリットについては興味があります。私の信念は、特定のパフォーマンス仕様をターゲットにしない限り、開発者がガイドラインに合わせるために打ちのめすコストはリソースの高価な使用になるため、コンピューターは十分に強力であるということです。

それ自体がいかなる承認でもないというわけではありません。しかし、私が見たすべてのMVC記事は、ビューとコントローラーの間のクラスをうまく囲んでいます。MVPはMVCの単なる別の形式なので、MVCに問題がなければ、MVPに問題があるのでしょうか。

于 2010-08-11T01:31:28.237 に答える