php设计模式(二)简单工厂模式
2017-07-26 22:58
555 查看
最近一直比较忙,一直想写工厂模式。很多情况我们都会把简单工厂模式误认为是工厂模式。简单工厂模式,能根据我们传入的参数,来创建不同类型的对象。如果这些对象再具有统一的行为,那我们就不必再担心后面的代码实现了。
比如常见的支付场景,支付类大多有相同的行为,比如向银行提交支付表单,接收银行返回数据,通知订单系统支付成功等,虽然每个支付接口的代码不尽相同,但是使用支付类的时候,我们只需要根据用户选择的支付类型,实例化对应的对象,然后调用支付的方法即可。
请看理解以下代码(网上常见的算法工厂):
现在我们只要调用createOperation这个方法,再传入 ‘+’,就得到一个能做加法运算的对象。我们由type入手,得到了一批可以对两个数进行加减乘除运算的对象。
优点是,不需要再修改代码,就能根据类型得到想要的对象。
缺点是,如果我们有新的逻辑,我们就需要有维护createOperation的代码。
应该牢记一个设计原则,设计类的时候,应该尽量把需要变化的地方独立出来,和那些不需要变化的代码分开。下一篇介绍工厂方法模式。
欢迎大家批评指正,good night!
比如常见的支付场景,支付类大多有相同的行为,比如向银行提交支付表单,接收银行返回数据,通知订单系统支付成功等,虽然每个支付接口的代码不尽相同,但是使用支付类的时候,我们只需要根据用户选择的支付类型,实例化对应的对象,然后调用支付的方法即可。
请看理解以下代码(网上常见的算法工厂):
class Operation { public static function createOperation($type) { $oper = null; swith($type) { case '+': $oper = new OperationAdd(); break; case '-': $oper = new OperationSub(); break; case '*': $oper = new OperationMul(); break; case '/': $oper = new OperationDiv(); break; } return $oper; } }
现在我们只要调用createOperation这个方法,再传入 ‘+’,就得到一个能做加法运算的对象。我们由type入手,得到了一批可以对两个数进行加减乘除运算的对象。
优点是,不需要再修改代码,就能根据类型得到想要的对象。
缺点是,如果我们有新的逻辑,我们就需要有维护createOperation的代码。
应该牢记一个设计原则,设计类的时候,应该尽量把需要变化的地方独立出来,和那些不需要变化的代码分开。下一篇介绍工厂方法模式。
欢迎大家批评指正,good night!
相关文章推荐
- PHP 设计模式 简单工厂和工厂模式
- PHP中的设计模式-简单工厂,静态工厂,工厂方法,抽象方法的关系
- php设计模式之简单工厂模式
- Php设计模式之工厂模式(一)简单工厂模式
- PHP简单工厂设计模式,简单代码。(缺点请指正,互相学习)
- php设计模式之简单工厂模式
- php设计模式之简单工厂
- PHP中的设计模式-创建型-简单工厂
- PHP设计模式之简单工厂模式
- php设计模式之简单工厂模式
- 设计模式(一)简单工厂(创建型)(Java&&PHP)
- php设计模式_简单工厂2
- PHP设计模式1-简单工厂模式
- php设计模式_简单工厂
- PHP设计模式:简单工厂
- PHP设计模式——简单工厂(研磨设计模式学习笔记)
- 初识PHP设计模式--简单工厂
- php设计模式-简单工厂模式
- 实例讲解PHP设计模式编程中的简单工厂模式
- PHP设计模式——简单工厂