PHP 常用的设计模式跟使用场景

策略模式:把类中可能改变的方法用成员属性替换,属性是实现对应方法接口的类,本来直接调用类方法,修改后就是调用成员属性类的方法,这样可以在运行时给类设置不同的成员属性达到动态改变调用的方法;
使用:Model 类 持有 Query 类,通过调用Query 类的查找等方法实现Model 的数据查找,如果需要更换数据源可以在Model类实例时绑定其他数据源的Query 实现数据查找的替换(将继承变为组合)

单例模式:全局唯一,数据库连接类,配置文件类等

工厂模式:具有一系相同功能不同实现的类,需要通过不同参数生产不同的实例,如DbManager 通过不同参数获取不同类型的数据库连接 (mysql,sqlite,Sqlsever等)

Builder模式:对象的创建具有多种可选的组合,通过Builder 构造器提供构造类可选的方法,最后构造出需要的功能组合,如:StringBuilder 构造字符串,SqlBuilder 构造sql 语句;

观察者模式:数据变动或事件触发会主动回调设置的监听依赖,需要提前设置监听者, 如swoole协程结束设置回调函数,php设置类的自动加载,异常处理机制等都可以理解为观察者模式(虽不是完整的观察者模式,但核心是一样的);

装饰模式:附加职责,将父类作为属性持有,并调用父类实现父类原有方法,添加额外方法;如,封装RedisHelp 类,继承Redis类并持有Redis作为属性,调用Reids类实现原有方法,在后面添加自己需要的快捷操作方法

设计原则

一:找出程序中会变化的方面,然后将其和固定不变的方面相分离.
二:针对接口编程,不针对实现编程
三:多用组合,少用继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值