另外五个 PHP 设计模式
http://www.ibm.com/developerworks/cn/opensource/os-php-designpatterns/
?
简介:?PHP V5 的面向对象特性使您能够实现设计模式来改进代码设计。通过这种方式改进代码设计,代码在进行修改时将变得更加易读、更易维护且更加健壮。
?
设计模式 一书介绍了很多此类概念。当时,我还在学习面向对象 (OO),因此我发现那本书中有许多概念都很难领会。但是,随着越来越熟悉 OO 概念 —— 尤其是接口和继承的使用 —— 我开始看到设计模式中的实际价值。作为一名应用程序开发人员,即使从不了解任何模式或者如何及何时使用这些模式,对您的职业生涯也没有什么大的影响。但 是,我发现了解这些模式以及 developerWorks 文章 “五种常见 PHP 设计模式” 中介绍的那些模式的优秀知识后(请参阅 参考资料),您可以完成两件事情:
?
启用高带宽会话 如果了解设计模式,您将能够更快地构建可靠的 OO 应用程序。但当整个开发团队知道各种模式时,您可以突然拥有非常高的带宽会话。您不再需要讨论将到处使用的所有类。相反,您可以与其他人谈论模式。“我要 在这里引用一个单例(singleton),然后使用迭代器遍历对象集合,然后……” 比遍历构成这些模式的类、方法和接口快很多。单是通信效率一项就值得花时间以团队的形式通过会话来研究模式。?
减少痛苦的教训 每个设计模式都描述了一种经过验证的解决常见问题的方法。因此,您无需担心设计是不是正确的,只要您已经选择了提供所需优点的模式。?
装饰器模式的优点是可以轻松地同时跟踪库的多个装饰器。
?
如果您拥有流对象的使用经验,则一定使用过装饰器。大多数流结构(例如输出流)都是接受基本输入流的装饰器,然后通过添加附加功能来装饰它 —— 例如从文件输入流、从缓冲区输入流,等等。
?
?
使用委托模式,对象将内在化(internalize)此发送过程,方法为在调用如清单 6 中的 useRail()
之类的方法时设置对相应对象的内部引用。如果处理各个包的条件发生更改或者使用新的送货类型时,则使用此模式尤为便利。
清单 6. 使用委托模式来发送送货请求
回页首
结束语
在 PHP 代码中使用设计模式可以使代码更容易阅读、更易维护。通过使用已经建立的模式,您将从通用的设计结构中获益,从而允许团队的其他开发人员了解代码的意图。它还使您可以从其他设计者完成的工作中获益,因此无需从失败的设计理念中吸取教训