最新消息:文章中包含代码时,请遵守代码高亮规范!

【原创】关于PHP的设计模式与魔术方法简述

PHP sherri 298浏览 0评论
魔术方法:
1、__get/_set方法 —>>调用不存在的变量时,回调这个方法
2、__call/callStatic方法 —>>调用不存在的方法时,回调这个方法
3、__toString —>>对象转换成字符串时回调这个函数
4、__invoke —>>当把对象当做函数来使用时,回调这个方法
3种基本设计模式:
1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接使用new
2、单例模式:使某个类的对象仅允许创建一个–>>常用于数据库连接,因为只需要连接一次
3、注册模式:全局共享和交换对象
适配器模式
可以将截然不同的函数接口封装成统一 的API
策略模式:
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境。
比如电商网站针对男性女性用户要跳转到不同的商品类目,并且所有广告位展示不同的广告
实现依赖倒置,控制反转
数据对象映射模式:
是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作
观察者模式:
当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新
原型模式:clone
1、与工厂模式类似,都是用来创建对象
2、实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作
3、适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可
装饰器模式:
1、可以动态的添加修改类的功能
2、一个类提供了一项功能,如果要再修改并添加额外的功能,传统的变成模式需要写一个子类继承它,并重新实现类的方法
3、使用装饰器模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性
迭代器模式:
再不需要了解内部实现的前提下,遍历一个聚合对象的内部元素
相比于传统的编程模式,迭代器模式可以隐藏遍历元素的所需的操作
代理模式:
在客户端和实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现对象

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/23461.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者sherri的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!