rpodwika/designpatterns

1.10.0 2016-06-15 19:20 UTC

This package is auto-updated.

Last update: 2024-09-23 09:48:47 UTC


README

#PHP 设计模式

Build Status Coverage Status Dependency Status Latest Stable Version Total Downloads Latest Unstable Version License

##为什么

为了我的实践和帮助其他程序员,我决定在PHP中实现几个设计模式。希望你会喜欢,并觉得它有帮助。如果你有任何建议如何改进,请创建 pull request 或给我发消息

##什么是设计模式

设计问题是经过验证的,可以解决在编写应用程序时经常出现的问题的解决方案。

##为什么要使用它们

因为它们可以解决问题。你不需要发明一个已经存在的解决方案。在你的程序员生涯中,你有多少次感觉你已经解决了现在面临的问题?同样,对于模式,你也有问题,可以使用特定的模式来解决。记住,你不应该强迫你的代码符合模式。它应该自然而然地出现。首先,遵循 K.I.S.S.(保持简单)。

##已实现的模式

  1. 反模式
  2. 行为模式
    • 适配器 - 不修改原始类的源代码,将类行为适应新的条件
    • 责任链模式 - 通过给多个对象一个机会来处理请求,避免请求发送者和接收者之间的耦合
    • 备忘录模式 - 在不违反封装性的情况下,捕获和外部化对象内部状态
    • 观察者模式 - 定义对象之间的一对多依赖关系,以便当一个对象改变状态时,所有依赖的对象都会被通知并自动更新
    • 代理模式 - 在提供原始对象访问之前执行某些操作
    • 状态模式 - 允许对象根据当前内部状态改变行为。
    • 策略模式 - 定义算法族,并使它们可互换。
  3. 创建型模式
    • 抽象工厂模式 - 提供创建一起工作的对象族的接口,而不指定具体的类
    • 工厂模式 - 定义一个创建对象的接口,但让子类决定实例化哪个类
  4. 结构型模式
    • 装饰器模式 - 在不通过子类化或修改源类的情况下,动态地附加对象功能。

##待实现

  • 建造者模式
  • 原型模式
  • 桥接模式
  • 组合模式
  • 外观模式
  • 享元模式
  • 命令模式
  • 解释器模式
  • 迭代器模式
  • 中介者模式
  • 访问者模式