View が Presenter を使用すると仮定すると、Presenter にはモデルがあります。
モデルをプレゼンターにどのように挿入しますか? ビュー レベルでそれを注入すると、ビジネス ロジックがビュー内にあるという正方形に戻ります。つまり、ビューはそのモデルを認識してはなりません。
何かアドバイス?
View が Presenter を使用すると仮定すると、Presenter にはモデルがあります。
モデルをプレゼンターにどのように挿入しますか? ビュー レベルでそれを注入すると、ビジネス ロジックがビュー内にあるという正方形に戻ります。つまり、ビューはそのモデルを認識してはなりません。
何かアドバイス?
パッシブビューパターンを参照している必要があります。監視コントローラーパターンでは、ビューは同期のためにモデルと通信します。
パッシブビューの場合あなたは正しいです。これは通常、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コンテナーは、コンストラクターパラメーターの循環依存関係を処理することもでき、プロパティインジェクションの必要性を否定します。