天天瞎忙活,QQ:705719110,欢迎来撩!

PHP中常用的设计模式

iOS开发 随风 236℃ 0评论

注册器(树)模式:用来将对象注册到全局的树上面,在哪里都能访问

工厂模式

适配器模式:将截然不同的函数接口封装成统一的API
举例:mysql,mysqli,pdo三种数据库操作可以用适配器模式统一成一致,还有将 memcache、redis、file、apc等不同的缓存函数,统一成一致

策略模式:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式,
比如一个电商网站,针对男女用户要各自跳转到不同的商品类目,并且所有广告位展示不同广告。

数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作,比如ORM类,将复杂的SQL语句映射成对象属性的操作。

观察者模式:当一个对象状态发生改变时,依赖它的对象全部会受到通知,并自动更新。观察者模式实现了低耦合,非侵入式的通知与更新机制。

原型模式:与工厂模式类似,都是用来创建对象,与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象。这样就免去了类创建时重复的初始化操作。原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可。

装饰器模式:可以动态地添加修改类的功能。一个类提供了一项功能,如果在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法。使用装饰器模式,仅需在运行时添加一个装饰器对象,即可实现,可以实现最大的灵活性。

迭代器模式:在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素。相对于传统的编程模式,迭代器模式可以隐藏遍历元素所需的操作。

代理模式:在客户端与实体之间建立一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。Proxy还可以与业务代码分离,部署到另外的服务器,业务代码通过RPC来委派任务。

下面介绍一下PHP中封装好的一些数据结构

PHP魔术方法大致分成四类:
1、__set/__get,修改对象不存在的属性和获取对象不存在的属性;
2、__toString();将一个对象当成一个字符串打印的时候调用;
3、__call/__callStatic:调用一个不存在的方法或者一个不存在的静态方法的时候调用;
4、__invoke,将对象当成函数调用的时候该魔术方法被调

面向对象的基本原则:
1.单一职责:一个类,只需要做好一件事情。
2.开放封闭:一个类应该是可扩展的,而不可修改的。
3.依赖倒置:一个类,不应该强依赖另外一个类。每个类对于另外一个类都是可替代的。
4.配置化:尽可能地使用配置,而不是硬编码。
5.面向接口编程:只需要关心接口,不需要关心实现。

配置与设计模式
1.PHP中使用ArrayAccess实现配置文件的加载
2.在工厂方法中读取配置,生成可配置化得对象
3.使用装饰器模式实现权限验证,模板渲染,JSON串化
4.使用观察者模式实现数据更新事件的一系列更新操作
5.使用代理模式实现数据库的主从自动切换

更多源码请查LearningPHP

转载请注明:怼码人生 » PHP中常用的设计模式

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址