工厂方法模式和简单工厂模式的区别

本文探讨了简单工厂模式和工厂方法模式在计算器应用中的实现。简单工厂模式通过条件判断创建运算对象,但违反OCP原则。工厂方法模式通过派生工厂类解决此问题,实现多扩展少修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单工厂模式

就我们的计算器例子来说,简单工厂模式的思想就是,创建一个运算类,创建一个简单工厂类。

运算类派生加法类、减法类、乘法类......

简单工厂类主要是根据传入的符号字符串,做相应的条件判断来创建相应的运算对象

当我们需要增加运算功能的时候,需要在运算类中派生相应的运算子类,在简单工厂类中增加相应的条件判断。

在简单工厂类中增加相应的条件判断】这一来就违反了设计模式的OCP原则!于是,工厂方法模式就解决了这一问题。


工厂方法模式

工厂方法模式的思想是,创建一个运算类,创建一个工厂类。

运算类派生加法类、减法类、乘法类......

工厂类派生相应的加法工厂,减法工厂、乘法工厂........

实质上就是,把简单工厂类中“根据传入的符号字符串,做相应的条件判断来创建相应的运算对象”,分担到每个派生类里面,在每个派生工厂类里面进行相应的运算对象生成操作。

这样一来,以后我们要增加一个运算功能的时候,就只需要增加运算派生类、增加派生的工厂类即可,而不需要去修改工厂基类的的内容,体现了多扩展,少修改的原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值