liuxiaoyi666

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理

很多人用设计模式的时候都很困惑,我认识许许多多的程序员都跟我说,设计模式不错,就是不知道在哪用。而许多人在用的时候也是生搬硬套,如同金庸小说中,只重招式的人一样。

其实项目需求千奇百怪,剑招是不够用的,也不必生搬硬套,否则硬用也只能是伤到自身而不能破敌。

记得金庸小说里风清扬教令狐冲的时候,说过独孤九剑的总纲,无招胜有招,其实设计模式中也有这种总纲,那便是 •Identify the aspects of your application that vary and separate them from what stays the same.(找到系统中变化的部分,将变化的部分同其它稳定的部分隔开。)

有了总纲接下来的事变就好做了,分析一下总纲,找到系统中变化的部分。这句话的含义是什么?我们怎么才能找到

“系统中变化的部分”?我想这个是总纲中深层的含义,其实这是在提示我们从需求中分析,发现需求方可能会改动

的地方,而在此基础上做的事情,通常我会认为我们要与需求人员达成一致的目的,而基于这个目的是有不同的变化

的,而另一半话 将变化的部分同其它稳定的部分隔开,又有这样的疑问了,如何寻找稳定的部分呢?其实不说大家

应该也能猜到 稳定的部分一样也是从需求目的中寻找。

貌似这样显得有点虚,来点儿实际的项目例子好了

在一个项目中,我遇到的问题是有一个搜索框类似于google,输入后需要有联想提示,并且要有一个层与之关联显

示不同的数据。这么一项目,变化点在于,显示不同数据的层,和联想提示的显示是可能变化的,而稳定的点是联想

提示本身与显示数据的层是分开的,而且都需要关联文本框的变化。这么经过分析这些变化与不变的点后,发现很适

合观察者模式,提示数据类和显示数据层类都需要观察文本框有没有变化,而有变化时就触发变化事件,而引起两个

类去做触发后的事情。

变化与不变是我们需要分析的最重要的部分,这个便是设计模式中独孤九剑的总纲。当然熟悉金庸书的人也知道要有破剑式,破掌式等等,等有时间了我再把这个类别也写出来。

posted on 2008-06-25 14:29  csdn兔  阅读(1942)  评论(6编辑  收藏  举报