プラグインフレームワークの開発者として、プラグインが実装しなければならないmyNameSpace.IPluginというインターフェースを指定したいと思います。インターフェイスメンバーの1つ、IPlugin.GetWidget()の戻り値は、System.Windows.Forms.Controlから派生した型でなければならず、myNameSpace.IFooインターフェイスも実装する必要があります。また、プラグイン開発者がIPlugin.GetWidget()からサードパーティのコントロール(既にSystem.Windows.Forms.Controlの子孫です)を返すことを許可したいと思います。これを文書化する以外に、この要件を明白に指定する最良の方法は何ですか:)。プラグインのデベロッパーは、これらの要件を満たすためにプラグイン(サードパーティのコントロールを使用)をどのように設計するのでしょうか?GUI Framework Plugin Design
1
A
答えて
1
あなたのデザインはちょっと怪しいです。ウィジェットが具体的なクラスから継承し、別の無関係なインターフェースを実装する必要があるのはなぜですか?あなたが少しでも継承されているように聞こえます。その代わりに、これを試してみてください。
interface IPlugin
{
IWidget Widget { get; }
}
interface IWidget
{
System.Windows.Forms.Control Control { get; }
IFoo Foo { get; }
}
かどうかIFooは本当に実装までにする必要がありますコントロール自体または別のクラスによって実装されます。あなたのコードは気にしないでください。
関連する問題
- 1. gui design question
- 2. Androidスタジオ:Design GUIで@ + idを追加するとエラーが発生する
- 3. AppCompatActivity design
- 4. defaultlist design
- 5. ReduxとDesign Patterns
- 6. Rails Design Question
- 7. Sharepoint Logical Design
- 8. Coupling&Cohesion Design
- 9. Microsoft Fluent Design transparency
- 10. Autodesk Forge Designオートメーションクォータ
- 11. expandable listview design
- 12. WinForms UserControl design
- 13. CouchDB Designドキュメントフォーマット
- 14. Reg Shared Memory Design
- 15. Java design strucutre
- 16. Java:Builder Design Pattern
- 17. Material Design Lite Carousel
- 18. Material Design Liteメニューダイナミックリピート
- 19. WCF Publish Subscribe Design
- 20. JMX Notifications design
- 21. Java try - finally design
- 22. Qt:Philosophical UI Designジレンマ
- 23. "Design Mode"プリプロセッサディレクティブ
- 24. C#OO Design Question
- 25. OO Design - Java Project
- 26. 封筒JARSからのみロードされるJava Plugin Framework
- 27. asp.net List of(CustomObject)design
- 28. query CouchDB for Design Documents
- 29. android-http post request design
- 30. Intel XDK Cordova Alert Design
タグがどのように質問タイトルですか? –