概述
变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好的提高代码复用?通过学习Template Method模式,您应该有一个新的认识。
意图
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。[-GOF《设计模式》]
结构图
图1 Template Method 模式结构图
生活中的例子
模板方法定义了一个操作中算法的骨架,而将一些步骤延迟到子类中。房屋建筑师在开发新项目时会使用模板方法。一个典型的规划包括一些建筑平面图,每个平面图体现了不同部分。在一个平面图中,地基、结构、上下水和走线对于每个房间都是一样的。只有在建筑的后期才开始有差别而产生了不同的房屋样式。
图2 使用建筑图为例子的Template Method模式
示例用例图
定义一个超市抽象类,每个超市继承这个抽象类.形成我们的模板模式,用例图如下:
代码设计
先创建ISuperMarket.cs:
01 |
public interface ISuperMarket |
06 |
/// <returns></returns> |
07 |
DateTime PreferencesStartTime(); |
12 |
/// <returns></returns> |
18 |
/// <returns></returns> |
24 |
/// <returns></returns> |
相关TAG标签
- 上一篇:JavaScript中函数的调用
- 下一篇:WCF客户端异常处理