0

私はある種のドキュメントエディタを書いています。アプリケーションは WPF で記述されており、同じプロセス内で複数のドキュメントを処理できる必要があります。各ドキュメントには、独自のリボンを備えた独自のエディター ウィンドウがあります (Word のように)。

アプリケーションで DI パターンを使用したいので、f.ex. 「SaveManager」クラスには、保存するはずのドキュメントが挿入される可能性があります。明らかに、コンテナーはアプリケーションの起動時にオブジェクト グラフ全体を作成することはできません。これは、ユーザーが後で新しいドキュメントを開くか作成するかを選択できるためです。これを処理する「通常の」方法は、抽象ファクトリを使用することですが、それは、ドキュメントで動作するすべてのクラスにファクトリが必要であることを意味します。多くのクラスでドキュメントへの参照が必要になると予想していますが、DI のためだけに面倒なことはしたくありません。コンテナがドキュメントのライフタイムを管理し、適切なドキュメント インスタンスを適切なタイミングで配布する方法はありますか。

よろしく、
テルジェ

4

2 に答える 2

0

次のようにすることをお勧めします。

  1. 環境のブートストラップおよびビルダーの一種である基本クラスを作成します
  2. 詳細を除くすべてのドキュメントに同じものをすべて入れてください
  3. 特定のドキュメントの詳細を実装する具象クラスを作成する
  4. ビルド時に共通の参照を挿入するには、基本クラスで DI を使用します。
  5. 次のような特定のクラスの特定の参照にはインターフェイスを使用します。

    void MyClass(IResource リソース);

  6. 他のクラスでそのリソースから継承し、具体的なクラスでジェネリックまたは型キャストを使用して解決します

于 2013-07-15T11:41:33.233 に答える