【发布时间】:2011-02-27 09:05:05
【问题描述】:
我正在编写一个实用程序类库。 A 编写了一个足够通用的工厂类,通过从调用者传入的一些委托,它可以在许多不同的情况下重用。但是,我的一位同事建议我使用抽象类或接口,以便更明确需要重写哪些函数。在我为使用该库而创建的模型中,您将需要覆盖 2 个类,而不仅仅是一个。什么标准决定何时适合使用委托函数或接口。
使用委托模式。
Class A
{
Func<string , ReultClass> fun1 {get;set;}
FactoryObj CreateObj()
{
return fun1("")
}
}
使用接口模式
Class B
{
InterfaceObj{get;set;}
FactoryObj CreateObj()
{
return InterfaceObj.fun1("")
}
}
【问题讨论】:
-
这取决于他们实际做什么。
-
一般来说,这些函数需要告诉类如何解释调用者特定的数据。通常是一到两行函数,这就是我选择委托模式的原因。
标签: c# architecture