关于PHP的设计模式与魔术方法简述

2018-02-27 11:01:52来源:http://blog.it985.com/23461.html作者:IT985博客人点击

分享

魔术方法:


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),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现对象


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



微信打赏


支付宝打赏


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


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台