DesignPatternsPHP

php实现设计模式

View on GitHub

行为型模式

这些设计模式特别关注对象之间的通信。 增加了执行通信的灵活性。

责任链模式

为请求创建了一个接收者对象的链。 通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。

场景:请求接口数据, 缓存上未找到, 委托给数据库查询接口。

命令模式

请求以命令的形式包裹在对象中,并传给调用对象。 调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 调用者→接受者→命令。

场景:发送消息的命令

迭代器模式

用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

场景:遍历书单信息.

中介者模式

用来降低多个对象和类之间的通信复杂性。 这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。

场景:打印用户信息.

备忘录模式

保存一个对象的某个状态,以便在适当的时候恢复对象。

场景:一张票的状态.

观察者模式

当对象间存在一对多关系时,则使用观察者模式. 比如,当一个对象被修改时,则会自动通知依赖它的对象。

场景:用户信息修改, 通知观察用户信息修改的观察者对象

空对象模式

场景:空日志通道

状态模式

场景:订单状态流转

策略模式

场景:对 对象列表 进行排序,一种策略按日期排序,另一种策略按ID排序

模板模式

场景:一场旅行 (买票->到达->购物->享受时光->返程) 大致执行过程可以看作模板.