2009-03-03 4 views
1

プラグインフレームワークの開発者として、プラグインが実装しなければならないmyNameSpace.IPluginというインターフェースを指定したいと思います。インターフェイスメンバーの1つ、IPlugin.GetWidget()の戻り値は、System.Windows.Forms.Controlから派生した型でなければならず、myNameSpace.IFooインターフェイスも実装する必要があります。また、プラグイン開発者がIPlugin.GetWidget()からサードパーティのコントロール(既にSystem.Windows.Forms.Controlの子孫です)を返すことを許可したいと思います。これを文書化する以外に、この要件を明白に指定する最良の方法は何ですか:)。プラグインのデベロッパーは、これらの要件を満たすためにプラグイン(サードパーティのコントロールを使用)をどのように設計するのでしょうか?GUI Framework Plugin Design

+1

タグがどのように質問タイトルですか? –

答えて

1

あなたのデザインはちょっと怪しいです。ウィジェットが具体的なクラスから継承し、別の無関係なインターフェースを実装する必要があるのはなぜですか?あなたが少しでも継承されているように聞こえます。その代わりに、これを試してみてください。

interface IPlugin 
{ 
    IWidget Widget { get; } 
} 

interface IWidget 
{ 
    System.Windows.Forms.Control Control { get; } 
    IFoo Foo { get; } 
} 

かどうかIFooは本当に実装までにする必要がありますコントロール自体または別のクラスによって実装されます。あなたのコードは気にしないでください。