上一节简单说明了关于简单工厂模式的一些知识,现在我们再来看看有关工厂模式的一些知识
事实上,工厂模式是对简单工厂模式的扩展,他不是用一个专门的类来决定要实例化哪一个子类。相反,基类把这种决定延迟到每个子类。也就是说它并没有直接选择有哪一个子类直接去实例化。按照这种模式,我们可以定义一个抽象类,由它去实例化,但由子类去决定创建哪一个对象。
示意图
示例代码
public abstract class Operation
{
public double NumberA { get; set; }
public double NumberB { get; set; }
public abstract double GetResult();
}
public class OperationAdd : Operation
{
public override double GetResult()
{
double result = NumberA + NumberB;
return result;
}
}
public class OperationSub : Operation
{
public override double GetResult()
{
double result = NumberA - NumberB;
return result;
}
}
public class OPerationMulti : Operation
{
public override double GetResult(