web development blog

> 标签 设计模式

PHP设计模式之迭代器模式

php设计模式 86 浏览 评论 2013/01/30

php设计模式笔记,第十二个是迭代器模式,也叫游标模式。定义:提供一种方法访问一个聚合对象中各个元素,而又不暴露该对象的内部细节。

此模式我们比较熟悉,因为对于php数组我相信大家都不陌生。其实数组类型的遍历,读取操作就是迭代器模式。而现在我们要实现的就是类似数组那样来操作我们的聚合对象各个元素。

 

主要角色:

抽象聚合对象:聚合定义创建相应迭代器对象的接口

具体聚合对象:实现抽象聚合对象接口,创建放回一个迭代器实例

抽象迭代器:定义访问和遍历集合对象的接口

具体迭代器:实现抽象迭代器的接口

 

实现的方式:

一、实现spl标准类库的Iterator 和IteratorAggregate内置接口

二、自己实现抽象...

阅读全文 >>

PHP设计模式之模版方法模式

php设计模式 63 浏览 评论 2013/01/24

php设计模式笔记,第十一个是模版方法模式。定义一个操作中的算法骨架,而将一些操作步骤延迟到子类中。它使得子类可以在不改变一个算法的结构既可重定义该算法的一些特定的步骤操作。

 

实现模版方法模式关键是在抽象模版类,即是模版骨架类中定义好操作步骤,并定义一些抽象方法,让这些抽象方法的实现由子类完成,就实现了可以根据不同情况而重定义操作方法。

 

我们通过模拟需求来理解模版方法模式:假设我们有一套多域名程序,要要实现根据不同域名,对数据渲染成不同的排版风格,并有简单的标签替换机制,以及用户自己定义模版功能。

具体代码如下:

/**
 * php设计模式 之 模版方法模式
 * @website wmhfly.com
 * 
 */

/**
 * 模版渲染骨架
 * ...

阅读全文 >>

PHP设计模式之外观模式

php设计模式 103 浏览 1 评论 2013/01/22

php设计模式笔记,第十个是外观模式。定义:通过在必要的逻辑和方法的集合前创建简单的外观接口,隐藏调用对象的复杂性。

外观模式也是比较容易理解的,只是定义说的都点抽象。其实就是封装对象创建和使用具体操作,简化客户端调用的复杂,提供一个简单的高层接口给客户端。

具体情况下面代码演示:

/**
 * PHP设计模式 之 外观模式
 * @website wmhfly.com
 *
 */

/**
 * 页面信息类
 */
class PageInfo {
	
	private $_uri;
	private $_title;
	private $_keywords;
	private $_description;	
	
	public functi...

阅读全文 >>

PHP设计模式之适配器模式

php设计模式 145 浏览 评论 2013/01/21

php设计模式笔记,第九个是适配器模式。定义:将一个类的接口适配成用户所期待的接口。 它可以让因为接口不能兼容的类可以一起工作,可划分为类适配器模式和对象适配器模式。

此模式比较好理解,类适配器模式关键是类继承,而对象适配器模式关键是委派。它可以让我们重用源的方法,也可以灵活的覆盖源的方法,让我们快速的适配成用户期待的各种需求接口。

 

涉及的角色:

目标(Target):客户端期待的接口;

源(Adaptee):需要进行适配的接口;

适配器(Adapter):对源(Adaptee)和目标(Target)进行接口适配,把源接口适配成目标接口,这就是我们要实现的核心所在。

 

适用场景:

1.类存在,但是其接口不是我们期待的,和需求不符合

2...

阅读全文 >>

PHP设计模式之装饰者模式

php设计模式 69 浏览 评论 2013/01/15

php设计模式笔记,第八个是装饰者模式。定义:动态的给对象添加一些额外职能,可以在不改变原类和使用继承的情况下实现,这种方式更具弹性。

 

装饰者模式设计的角色:

抽象组件接口(Component):规范化被装饰者方法接口;

被装饰对象(ConcreteComonent):具体组件实现抽象接口,用来添加额外功能的类;

装饰者抽象类(Decorator):实现抽象组件接口,并持有对具体组件对象的引用;

具体装饰者(ConcreteDecorator):继承装饰者抽象类,实现附近职能的具体操作;

 

装饰者模式的理解在于,装饰者和被装饰者对象超类相同,实现了同一接口;而装饰者抽象类持有对被装饰者对象的引用,具体装饰者调用parent::方式调用父级操作方法,实现可...

阅读全文 >>

首页|前端技术|编程/php|生活|关于我

Copyright © 2012 wmhfly.com