2012-01-30 19 views
0

私はそれを理解していないので、私が説明する方法がわからない何かを理解しようとしている:(プラグインアーキテクチャの動物園の例に

のは、私は動物園のアプリケーションを作ってるんだと私は別の動物を販売したいとしましょう。動物園のために、私は次のようにIAnimalインターフェースを想像:

public interface IAnimal 
{ 
    string Talk { get; set; } 
} 

は今、私は犬

のために猫のためのプロジェクトとプロジェクトを作成します
public class Cat : IAnimal 
{ 
... 
} 

のは、私は阿波を与えましょうy動物園のアプリケーションとユーザーがそれを開くと、このユーザーが購入した動物を確認するコードはどうなっていますか?

+0

Zooアプリケーションでどのアセンブリ(プロジェクト)が認識されるべきか(ディレクトリや明示的な構成をスキャンしているかどうかに関係なく)これを済ませたら、見つかったアセンブリで見つかった動物型のリストが完成します。 –

答えて

0

これはInversion of Controlパターンを使用したDependency Injectionの主要なケースです。 StructureMapは、アプリケーションに依存関係を注入するためのオープンソースプロジェクトです。 「このアセンブリでは、特定のインタフェースのすべての実装を見つけて、それらの実装のインスタンスを作成できるようになります」と言うことができます。この緩やかな結合は、単体テストシナリオの作成を容易にします。

2

必要なプラグイン可能性の程度に応じて、MEFを調査する価値があります。マニュアルには役立つサンプル電卓アプリが含まれています。

関連する問題