Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95466
  • 博文数量: 109
  • 博客积分: 3411
  • 博客等级: 中校
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 09:04
文章分类

全部博文(109)

文章存档

2011年(109)

分类: Java

2011-07-26 16:47:58

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

    

     这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使 

用到了继承关系。 

     继承关系由于自身的缺陷,被专家们扣上了罪恶的帽子。使用委派关系代替继承关 

尽量使用接口实现而不是抽象类继承等等专家警告,让我们这些菜鸟对继承另眼相 

。 

     其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理 

的利用继承关系,还是能对你的系统设计起到很好的作用的。而模板方法模式就是其中的一 

个使用范例。 

二、定义与结构 

     模板方法(Template Method)模式:定义一个操作中的算法的骨架,而将一些步骤延 

迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这里 

的算法的结构,可以理解为你根据需求设计出来的业务流程。特定的步骤就是指那些可能在 

内容上存在变数的环节。 

     可以看出来,模板方法模式也是为了巧妙解决变化对系统带来的影响而设计的。使用模 

板方法使系统扩展性增强,最小化了变化对系统的影响。这一点,在下面的举例中可以很明 

显的看出来。 

     来看下这个简单模式的结构吧: 

1)   抽象类(Abstract Class):定义了一到多个的抽象方法,以供具体的子类来实现它们; 

     而且还要实现一个模板方法,来定义一个算法的骨架。该模板方法不仅调用前面的抽象 

     方法,也可以调用其他的操作,只要能完成自身的使命。 

2)   具体类(Concrete Class):实现父类中的抽象方法以完成算法中与特定子类相关的步骤。

阅读(320) | 评论(0) | 转发(0) |
0

上一篇:策略模式

下一篇:产生高度优化的PHP代码

给主人留下些什么吧!~~