运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别
http://tech.ddvip.com 2007年03月16日 社区交流
本文详细介绍运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别
下面编一个小程序,重在演示CMimeString的用法。有2点需要说明:
· 程序比较简单,仅支持Base64编码和解码;
· 而且对一个串进行解码时并没有检查它是否是合法的Base64编码的结果串(有些字符串是不可能成为Base64编码的结果的),因此对串someString解码后再编码得到的串anotherString可能和someString并不相同。

五、Template Method和Strategy模式的区别
上面的设计过程中,牵涉到Template Method和Strategy这2个设计模式,本部分对它们简要总结和对比。
1、Template Method模式Tips
·Tip 1:关键字:Skeleton。
·Tip 2:图:

·Tip 3:支持变化。Subclass可以只改变算法的特定步骤,而不改变和继续使用算法的Skeleton。图中黄色的Class就是后来写的,而且工作量很小,只需Override相应的Virtual函数。其中的ConcreteClass3的改动量更小,它从已有的ConcreteClass1继承,只Override其中的一个Virtual函数。
Template Method可以说是最常见的模式,在MFC中,全局函数AfxWndProc()就是一例。
·Tip 4:支持框架。著名的Framework方面的“好莱坞法则”(Don''t call us, we''ll call you )就是主要由Template Method支持的“反向控制”(Superclass调用Subclass的Method)产生的。
2、Strategy模式Tips
·Tip 1:关键字。Aalgorithm Family。
作者:温昱 责编:豆豆技术应用
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……