运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别

豆豆网   技术应用频道   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。

作者:温昱    责编:豆豆技术应用

正在加载评论...