作为一个插件框架开发人员,我想指定一个插件必须实现的接口myNameSpace.IPlugin。接口成员之一IPlugin.GetWidget()的返回值必须是从System.Windows.Forms.Control派生的类型,并且还必须实现myNameSpace.IFoo接口。我还希望允许插件开发人员从IPlugin.GetWidget()返回第三方控件(它们已经是System.Windows.Forms.Control的后代)。除了记录这个需求之外,明确地指定这个需求的最佳方法是什么:),并执行它?插件开发人员如何设计插件(使用第三方控件)来满足这些需求?
发布于 2009-03-07 04:48:06
你的设计看起来有点可疑。为什么小部件必须既继承一个具体的类又实现另一个不相关的接口?听起来你有点继承的意思。而不是这样,试试这个:
interface IPlugin
{
IWidget Widget { get; }
}
interface IWidget
{
System.Windows.Forms.Control Control { get; }
IFoo Foo { get; }
}IFoo是由控件本身实现的,还是由另一个类实现的,这应该由实现者决定。你的代码不应该关心。
https://stackoverflow.com/questions/604887
复制相似问题