运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别
2007-03-16 21:56:45 来源:WEB开发网核心提示: 下面编一个小程序,重在演示CMimeString的用法,运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别(6),有2点需要说明:· 程序比较简单,仅支持Base64编码和解码;· 而且对一个串进行解码时并没有检
下面编一个小程序,重在演示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。
更多精彩
赞助商链接