4

View が Presenter を使用すると仮定すると、Presenter にはモデルがあります。

モデルをプレゼンターにどのように挿入しますか? ビュー レベルでそれを注入すると、ビジネス ロジックがビュー内にあるという正方形に戻ります。つまり、ビューはそのモデルを認識してはなりません。

何かアドバイス?

4

1 に答える 1

3

パッシブビューパターンを参照している必要があります。監視コントローラーパターンでは、ビューは同期のためにモデルと通信します。

パッシブビューの場合あなたは正しいです。これは通常、Main関数またはMainから呼び出すことができる構成クラスのいずれかで行います。言語が指定されていないため、C#で例を記述しました。

static void Main(string[] args)
{
    Model model = new Model();
    View view = new View();
    Presenter presenter = new Presenter(view, model);
}

public Presenter(IView view, IModel model)
{
    this.View = view;
    this.View.Presenter = this;
    this.Model = model;
}

もちろん、これは非常に単純化しすぎています。実際のアプリケーションでは、プレゼンターはモデルを抽象化するドメインオブジェクトに依存し、IoCコンテナーを使用して構成を処理する可能性があります。一部のIoCコンテナーは、コンストラクターパラメーターの循環依存関係を処理することもでき、プロパティインジェクションの必要性を否定します。

于 2009-06-05T04:21:14.463 に答える