首页 > 代码库 > 简单工厂模式PK工厂方法模式

简单工厂模式PK工厂方法模式

          在前一章节我们讲到了简单工厂模式,它的已入确实为我们的代码增添了灵活性、可继续。那么为什么在还有工厂方法模式呢?

    什么是工厂方法模式呢?定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使实例化延迟到子类中。简单点说就是为每一个具体类创建一个工厂类(此类是继承抽象工厂类)。那么我们在客户端时候,直接用对应的工厂类创建实例。


     用简单工厂模式,我们如果需要添加行的计算方法(以运算扩充为例),那需要重新写一个继承运算类的具体类。我们而且需要修改工厂类中的判断逻辑。这样做的话就会和我们先前将的一个设计原则冲突(开放-封闭原则)。所以就有了工厂方法模式了。工厂方法模式是对简单工厂模式的扩展而来的。我们仔细可分析到:工厂方法模式实现时候,客户端需要去决定实例化哪个对象,而简单工厂则是将判断的逻辑放在工厂类中。

        我们在实际的开发过程中,并不是一定要使用这个模式,因为他们各有利弊:采用工厂方法模式,我们需要增加额外的代码(相比简单工厂模式增加了具体的工厂类),这样使得开发前期工期较长。

       从系统维护的角度思考,建议采用此模式。因为如果后续在增加新的运算方法的时候(例如:开根计算),我们的代码修改量就非常少;而且后台代码不用任何修改,只需修改调用处的判断。

简单工厂模式PK工厂方法模式