我正在学习设计模式,书中的第一个例子是关于抽象工厂的。我已经在 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();
}
当然,两个示例的功能完全相同,但我想知道使用抽象类而不是接口的原因是什么?