1

(この質問は特に C# での質問ですが、一般的には .NET に適用されます)

私は、かなり優れた設計の大きなアプリケーションを持っており、インターフェイス上で主要なセクションに分割されています (これは、並行開発を支援するために行われました)。

これで、必要なインターフェースを実装する具象クラスの基本セットができましたが、別の状況やテスト用の具象クラスの追加セットもあります。

現時点では、これらすべてのクラスをコードの最上位レベルにまとめています。

IMyInterface xComponent = new ConcreteXComponent1();

コンポーネントを交換したい場合は、その行を変更して再コンパイルするだけです。

// IMyInterface xComponent = new ConcreteXComponent1();
IMyInterface xComponent = new ConcreteXComponentAlternative();

それはうまく機能しますが、明らかに再コンパイルが必要です.configファイルの値を使用して具象クラスを選択したほうがよいでしょう。

構成ファイルを使用して具体的なクラスを変更するための標準的なパターンは何ですか? この問題を解決するために使用できる標準ライブラリはありますか?

ありがとう!

4

4 に答える 4

4

IoC コンテナーを見たいとします。(Spring.NET、StructureMap、ウィンザーなど)

于 2008-10-25T11:07:28.100 に答える
2

メソッドを使用できますActivator.CreateInstance。メソッドのオーバーロードの 1 つは型名を取り、既定のコンストラクターを使用してそのインスタンスを作成します。次に、クラスの型名を構成ファイルに保存し、アプリケーションから読み取ることができます。

于 2008-10-25T11:17:03.930 に答える
1

工場のパターンを試す

http://en.wikipedia.org/wiki/Abstract_factory_pattern

于 2008-10-25T11:03:57.843 に答える
0

IoC コンテナを使用すると、動的にロードできるオブジェクトのプールまたはコレクションが作成されます。Romain が提案したフレームワークは、オブジェクトとそのインスタンス化方法を記述する構成ファイルを使用します。

于 2008-10-25T11:29:39.833 に答える