包建强的开源地带
我的微软梦,实现了一半
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 303 文章- 1 评论- 1031
我也设计模式——24.Template Method
模板方法很简单,只要有抽象类的地方,都可以看到这个模式:就是在父类中的非抽象方法中调用抽象方法。
基于委托的模板方法:从而具体实现方法可以不依赖于抽象类,达到解耦的目的
几点注意:
1.delegate声明在模板类中
2.在类DoCompA和DoCompB中定义与委托相同的方法
3.在Main()中组装委托链,调用tm.DoComp()意味着这是一个模板方法(非抽象中方法调用抽象方法)
public
class
TemplateMethod
{
public
delegate
void
Do();
public
Do myDo;
public
void
DoComp()
{
myDo();
}
}
public
class
DoCompA
{
public
void
c1()
{
//
Do something
}
public
void
c2()
{
//
Do something
}
}
public
static
class
DoCompB
{
public
static
void
c3()
{
//
Do something
}
}
public
class
MainClass
{
static
void
Main()
{
DoCompA a
=
new
DoCompA();
TemplateMethod tm
=
new
TemplateMethod();
tm.myDo
+=
new
TemplateMethod.Do(a.c1);
tm.myDo
+=
new
TemplateMethod.Do(a.c2);
tm.myDo
+=
new
TemplateMethod.Do(DoCompB.c3);
tm.DoComp();
}
}
posted @ 2007-10-04 11:43
包建强
阅读(66)
评论(0)
编辑
收藏
所属分类:
Design Patterns
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-10-26 16:11 编辑过
相关文章:
.NET设计模式系列文章
.NET设计模式(5):工厂方法模式(Factory Method)
.NET设计模式(2):单件模式(Singleton Pattern)
.NET设计模式(3):抽象工厂模式(Abstract Factory)
prototype.js 1.4版开发者手册(强烈推荐)
设计模式(21)-Template Method Pattern
相关链接:
所属分类的其他文章:
被遗忘的设计模式——1.不变模式(Immutable)
一些被遗忘的设计模式
我也设计模式——22.Iterator
我也设计模式——19.Mediator
我也设计模式——15.Chain of Responsablity
我也设计模式——9.Bridge
我也设计模式——16.Interpreter
我也设计模式——24.Template Method
我也设计模式——23.Strategy
我也设计模式——17.State
最新IT新闻:
消息称MySQL创始人已向Sun提交辞呈
谷歌Chrome浏览器即将更换LOGO颜色?
淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略
微软研究院发布 AutoCollage - 整理并融合照片
2008年9月5日科技博客精选
博客园新闻频道
博客园首页
社区
公告
姓名:包建强
位置:中国 上海
学历:复旦大学数学系 本科
工作:某外企医疗研发中心 软件工程师
MSN:bjq_ren@hotmail.com
MVP:2008.7——2009.7
MVP配置
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的文章
我的参与
最新评论
我的标签
我管理的小组
写书译书小组
读书(Books)
博客园精华集出版小组
随笔分类
.NET C#(6)
(rss)
.NET CLR(25)
(rss)
.NET MSIL(32)
(rss)
.NET Reflection(6)
(rss)
.NET Serializable(6)
(rss)
.NET好书逐个评(2)
(rss)
AJAX(3)
(rss)
ASP.NET 2.0(14)
(rss)
Data Structures(2)
(rss)
Design Patterns(29)
(rss)
Open SourceCode(4)
(rss)
Others(50)
(rss)
SharpDevelop 0.92(11)
(rss)
T-SQL(2)
(rss)
WCF(2)
(rss)
WF(5)
(rss)
WPF(106)
(rss)
包包版网络棋牌大厅(9)
(rss)
博客园精花集(19)
(rss)
随笔档案
2008年9月 (4)
2008年8月 (14)
2008年7月 (28)
2008年6月 (11)
2008年5月 (15)
2008年4月 (58)
2008年3月 (26)
2008年2月 (8)
2008年1月 (1)
2007年10月 (31)
2007年9月 (30)
2007年8月 (9)
2007年7月 (7)
2007年5月 (3)
2007年4月 (36)
2007年3月 (20)
2006年11月 (4)
最新随笔
1. 人生,就是0和1的组合
2. (翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(四)
3. (翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(三)
4. (翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(二)
5. (翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(一)
6. MVP 150$购物券 买Zune Mp3 8G 到手
7. 也谈多线程同步
8. (翻译)《Expert .NET 2.0 IL Assembler》 第四章 托管可执行体文件的结构 4.3 小结
9. (翻译)《Expert .NET 2.0 IL Assembler》 第四章 托管可执行体文件的结构 4.2 CLR头(二)
10. (翻译)《Expert .NET 2.0 IL Assembler》 第四章 托管可执行体文件的结构 4.2 CLR头(一)
积分与排名
积分 - 161824
排名 - 221
最新评论
1. re: 辞职后,短期规划
支持一下 (拒绝潜水的鱼)
2. re: 《博客园精华集》软件工程分册第2论筛选结果文章列表 ——替老友王纯栋发文
什么时候能第三轮选完? (jackyrong的世界)
3. re: MVP 150$购物券 买Zune Mp3 8G 到手
我也去想办法弄一个回来。哈哈。 (Shiny Zhu)
4. re: 人生,就是0和1的组合
一切隨自己的興趣就好 (ChrisNiu)
5. re: Vista下建立WCF遇到的问题及解决方案
对着vs2008的快捷方式右键,选择“以管理员身份运行”即可。
或者更改快捷方式的属性,让他始终以管理员的权限运行。 (kwanhong young)
6. re: MVP 150$购物券 买Zune Mp3 8G 到手
恭喜哦! (Windie Chai(笑煞天))
7. re: MVP 150$购物券 买Zune Mp3 8G 到手
我也送给MMb (阿不)
8. re: 人生,就是0和1的组合
包哥,你的棋盘类游戏还继续吗? (英雄)
9. re: 3.设计用于浅串行化的类
你给提供了一个很好的Demo!谢谢!! BTY,有一个地方是错误的: 应该把ImportMembersMapping 改为ImportTypeMapping 正确写法如下: XmlTypeMapp... (yegang)
10. re: 人生,就是0和1的组合
观自在菩萨 行深般若波罗蜜多时 照见五蕴皆空 度一切苦厄 舍利子 色不异空 空不异色 色即是空 空即是色 受想行识 亦复如是 舍利子 是诸法空相 不生不灭 不垢不净 不增不减 是故空中无色 无受想... (.Live)