PHP设计模式笔记:使用PHP实现装饰模式 【意图】 动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活【GOF95】 装饰模式是以对客户透明的方式动态地给一个对象附加上更多的职责。这也就是说,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 【装饰模…
PHP设计模式笔记:使用PHP实现抽象工厂模式 抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类。 【意图】 抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类【GOF95】 【抽象工厂模式结构…
PHP中的设计模式笔记:建造者模式 【Builder模式】 建造者模式可以让一个产品的内部表象和和产品的生产过程分离开,从而可以生成具有不同内部表象的产品。 【Builder模式结构图】 [caption id="attachment_716" align="aligncenter" width="400" caption="Builder模式简单示例图"]…
PHP中的设计模式笔记:访问者模式 【Visitor模式】 访问者模式表示一个作用于某对象结构中各元素的操作。它可以在不修改各元素类的前提下定义作用于这些元素的新操作,即动态的增加具体访问者角色。 访问者模式利用了双重分派。先将访问者传入元素对象的Accept方法中,然后元素对象再将自己传入访问者,之后访问者执行元素的相应方法。 访问者模式多用在聚集类型多样…
妙解Hibernate 3.x——叩响面向对象思想之门 读书笔记 在今年过生日的时候公司送了这本书给我,是部门老大挑的 找些时间看了下,由于在工作中并没有用到Hibernate,所有大部分内容没有看, 只看了前面的几章,当看到第三章,觉得仅第三章,这本书都值得一看(后面的章节由于用不到hibernate,只是简单过一遍) 第三章,看了不下三遍,觉得自己在某些…
PHP中迭代器的简单实现及Yii框架中的迭代器实现 在维基百科中我们可以看到其定义如下: 迭代器有时又称光标(cursor)是程式设计的软件设计模式,可在容器物件(container,例如list或vector)上遍访的接口,设计人员无需关心容器物件的内容。 各种语言实作Iterator的方式皆不尽同,有些面向对象语言像Java, C#, Python, D…