前言

个人认为设计模式的学习,重要的是学习其思想,而应该突破gof有形的条条框框,把想法融合到自己的实际应用中去,

同时有好的变通那就更好了

笔记

1.   状态模式(State)

书上解释:一个对象方法的结果依赖其条件的改变,也就是说一个类中的方法,要执行什么样的操作,就要根据其条件。应用于条件和操作不可预知的情况下,这样就可以把每一种情况所产生的操作,分别放于一个单独的类中,这样就比较有利扩展和后期的维护。同时也符合了开闭原则。这个给我的感觉有点类似策略模式(Strategy),不过策略模式注重的是算法。

例如:

Code

 书上说可以用于消除无效扩大的switch语句。

 2适配器模式(Adapter)

这个概念理解起来简单,就是解决新旧功能(类)接口不一致的问题,使其能够对接,通常用于软件使用后的维护阶段。分成两种:类适配器和对象适配器,因为C#只能单类继承,所以就只介绍了对象适配器。手法主要是新建一个适配类(继承了新接口)合成原来需要的适配的类。为什么要用适配器模式,我推测应该是旧功能可能在系统中很多地方应用,但是新功能也要用到(在不想影响到原来其它功能使用),同时又需要处理一下,在这样的情况,通过建立适配类来达到目的。有点装饰的味道,也符合了开闭的原则。

代码如下:

Code

 

.net framework 中DataAdapter使用了这个。

后记

本人学习中,欢迎批评指正。上面两个模式用的比较少。

 

posted on 2009-04-28 16:12  复用软件  阅读(2003)  评论(10编辑  收藏  举报