频道栏目
首页 > 资讯 > ASP.Net > 正文

步步为营 .NET 设计模式学习笔记 十八、Template(模板模式)

11-04-29        来源:[db:作者]  
收藏   我要投稿

概述

变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好的提高代码复用?通过学习Template Method模式,您应该有一个新的认识。

意图

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。[-GOF《设计模式》]

结构图

alt

图1 Template Method 模式结构图

生活中的例子

模板方法定义了一个操作中算法的骨架,而将一些步骤延迟到子类中。房屋建筑师在开发新项目时会使用模板方法。一个典型的规划包括一些建筑平面图,每个平面图体现了不同部分。在一个平面图中,地基、结构、上下水和走线对于每个房间都是一样的。只有在建筑的后期才开始有差别而产生了不同的房屋样式。

alt

图2 使用建筑图为例子的Template Method模式

 

示例用例图

定义一个超市抽象类,每个超市继承这个抽象类.形成我们的模板模式,用例图如下:

image

 

代码设计

先创建ISuperMarket.cs:

01 public interface ISuperMarket
02 {
03     /// <summary>
04     /// 活动开始时间
05     /// </summary>
06     /// <returns></returns>
07     DateTime PreferencesStartTime();
08  
09     /// <summary>
10     /// 种类
11     /// </summary>
12     /// <returns></returns>
13     int Category();
14  
15     /// <summary>
16     /// 优惠折扣
17     /// </summary>
18     /// <returns></returns>
19     double Discount();
20  
21     /// <summary>
22     /// 超市名称
23     /// </summary>
24     /// <returns></returns>
相关TAG标签
上一篇:JavaScript中函数的调用
下一篇:WCF客户端异常处理
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站