首页 大话PHP设计模式笔记
文章
取消

大话PHP设计模式笔记

PSR-0规范

  1. 命名空间必须与绝对路径一致
  2. 类名首字母必须大写
  3. 除入口文件外,其他”.php”必须只有一个类

符合PSR-0规范的基础框架

  1. 全部使用命名空间
  2. 所有PHP文件必须自动载入,不能有include/require
  3. 单一入口

三种基本的设计模式

  1. 工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
  2. 单例模式:使某个类的对象仅允许创建一个
  3. 注册模式:全局共享和交换对象

适配器模式

  1. 适配器模式,可以将截然不同的函数接口封装成统一的API
  2. 实际应用举例,PHP的数据库操作有mysql、mysqli、pdo3种,可以用适配器模式统一成一致。类似的场景还有cache适配器,将memcache、redis、file、apc等不同的缓存函数,统一成一致的一接口

策略模式

  1. 策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式
  2. 使用策略模式可以实现Ioc,依赖倒置、控制反转 依赖注入(DI) or 控制反转(IoC) PHP简单的IoC控制反转实现 – 简明现代魔法 php 架构师之路ioc讲解

数据对象映射模式

  1. 数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作。

观察者模式

  1. 观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新
  2. 场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件代码之后直接加入处理逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体代码
  3. 观察者模式实现了低耦合,非侵入式的通知与更新机制

原型模式

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

装饰器模式

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

迭代器模式

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

代理模式

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

面向对象编程的基本原则

  1. 单一职责:一个类,只需要做好一件事情。
  2. 开放封闭:一个类,应该是可以扩展的,而不可修改。
  3. 依赖倒置:一个类,不应该强依赖另外一个类。每个类对于另外一个类都是可替换的。
  4. 配置化:尽可能地使用配置,而不是硬编码。
  5. 面向接口编程:只需要关心接口,不需要关心实现。
本文由作者按照 CC BY 4.0 进行授权