我正在学习设计模式,书中的第一个例子是关于抽象工厂的。
我已经在 VS 中构建了练习,一切看起来都不错,但有一个问题我想知道。
书中工厂类的实现是这样的:
public abstract class AbstractVehicleFactory
{
public abstract IBody CreateBody();
public abstract IChassis CreateChassis();
public abstract IGlassware CreateGlassware();
}
完成练习后,我注意到上面的类可以用以下代码替换:
public interface IAbstractVehicleFactory
{
IBody CreateBody();
IChassis CreateChassis();
IGlassware CreateGlassware();
}
当然,这两个示例的功能完全相同,但我想知道使用抽象类而不是接口的原因是什么?
“摘要”中“抽象工厂”与“抽象”无关abstract class
。抽象工厂是具体工厂的“基础”,但设计模式本身并不强制执行任何特定的实现。抽象工厂可以是抽象的,甚至可以是具体的类、接口或某种形式的鸭子类型对象,具体取决于您使用的语言。
确实在 C# 中interface
是指定抽象工厂的非常合理的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)