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

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

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


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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值