随笔- 29  文章- 5  评论- 408 
提到设计模式,大家心头都会一悸
这一悸有千恩万谢、这一悸有酸甜苦辣、这一悸有悲欢往事
在园中有几人没有这个分类,又有几人不深谙他的魅力
工厂、策略、单件、观察者、桥梁、装饰、责任链、构建、状态、门面、享元……
这一串熟悉的面孔是否让你一次次热血沸腾,那就来参加讨论吧
说说你的设计故事
说说你最喜爱的设计模式、又是什么那么的吸引你
说说你给新手的建议
Tag标签: 讨论,设计模式
 posted on 2008-02-19 09:01 floodpeak 阅读(2375) 评论(28)  编辑 收藏 所属分类: 面向对象

#1楼     回复  引用  查看    
 JerryChou       | 2008-02-19 09:08
好激烈……
#2楼     回复  引用    
 niming [未注册用户] | 2008-02-19 09:18
觉得这些该放到小组里去讨论
#3楼     回复  引用  查看    
 WEBBER       | 2008-02-19 09:21
留名
#4楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 09:25
我先抛个砖吧
设计模式中,用到过的可能不下十五种,具体的也没有统计过,但令我印象最为深刻的,也是给我最大受益的还属观察者模式
我做的是广电系统的线缆设计模块,使用的是超图提供的GIS控件,使用过它的同行肯定知道,这个控件提供了大量的消息,包括最基本的鼠标键盘消息,还有一些特殊的消息,比如添加了空间对象
开始的时候用这些消息还是很方便的,毕竟人家也是千锤百炼的,稳定性肯定有保障,可是开发了一个月后,功能做了一部分,突然发现再加入新的功能已经举步维艰,因为代码量太大,而使用这样的一个消息系统,各个关联不大的功能之间也耦合紧密,看了半天觉得回到了过程时代,在手足无措之时想到了故交观察者。
用观察者模式来处理这样的问题实在是游刃有余,首先让Subject盯着控件发出的各种消息,然后将消息分析后分发给各个Observer,而这时的各个功能逻辑可以散布到各个观察者中,耦合度急剧下降,而且各个观察者的注册与反注册可以根据需要随时进行,灵活性急剧增强,从而使整个系统可扩展性良好、可维护性提高、可重用性增强,为后续的开发工作提供了有力的保障
#5楼     回复  引用  查看    
 阿牛 - 专注OOP       | 2008-02-19 09:26
无模式是最好的模式,不要为了模式而模式.
好好补充一下OO基础吧.
#6楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 09:27
@JerryChou
@WEBBER
感谢支持

#7楼     回复  引用  查看    
 Jeffrey Zhao       | 2008-02-19 09:34
喜爱啊……
#8楼     回复  引用  查看    
 海东青       | 2008-02-19 09:34
工厂模式以前在作Web Service时候经常用到,和命令模式一起。

现在观察者用的挺多的。

单例模式配合缓存坐权限比较好,还没有看到那位讲这个模式时候用这个举例的。

我觉得那种模式用的多是因为开发过程中的须要,硬套不是很好。

在我不知道有gof23时候就用过模板方法了,我相信大多数人也都用过
#9楼     回复  引用  查看    
 Rivers Zhao       | 2008-02-19 09:42
感觉用得最多的,还是abstract factory,我做过的项目中,好多地方都用到过.
#10楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 09:48
@niming
主页中可以为更多的人看到,小组的讨论可能技术性更强一些,而这里我希望是一个经验性强一些,也可以给初学者一些启迪
#11楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 09:50
@阿牛 - 专注OOP
呵呵,教训的是
学习设计模式的过程应该是这样的
无模式->学习模式->精通模式->无模式
谁都希望达到无招胜有招的境界,可是这需要过程
今天的讨论应该在第二箭头之中
#12楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 09:53
@Jeffrey Zhao
感谢关注
#13楼     回复  引用    
 webqsoft [未注册用户] | 2008-02-19 09:58
--引用--------------------------------------------------
阿牛 - 专注OOP: 无模式是最好的模式,不要为了模式而模式.
好好补充一下OO基础吧.
--------------------------------------------------------

装得很像

#14楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 10:01
@海东青
有时间给我们讲讲单例模式配合缓存做权限的例子
设计模式是一种真理,我们在没有学习过设计模式时都会或多或少的与他不谋而合,但是学习过后我们可以把他从经验性的东西提炼为理论性的,并且反过来再指导实践,这应该就是我们学习并使用设计模式的初衷
这好比是政经中的价值规律,任何人都知道东西如果少了而需求大,它价格马上就涨,而反过来价格就贱,可是学过政经后就可以站到理论高度了,把握起来更加从容
#15楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 10:07
@Rivers Zhao
抽象工厂由于它产生的是对称的产品系,因此这种应用较少,到现在为止我还没有遇到过
而工厂方法我是经常使用的
这里给出一个二者的区别,以供大家参考
#16楼     回复  引用  查看    
 金色海洋(jyk)       | 2008-02-19 12:56
http://www.cnblogs.com/jyk/archive/2008/01/15/1040413.html

写了一个,但是也不知道算不算应用了模式,回帖的意见也不统一。
#17楼     回复  引用  查看    
 Rivers Zhao       | 2008-02-19 12:56
@ 鸿峰师兄
谢谢.
#18楼     回复  引用  查看    
 一抹微蓝       | 2008-02-19 13:06
使用过工厂、策略、门面,其它的都不了解,我火星
#19楼     回复  引用  查看    
 Cure       | 2008-02-19 13:22
博主的随笔以后会不会都是激烈讨论系列?
#20楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 13:28
@金色海洋(jyk)
看了一下你的文章,我的感觉是你有点小题大做了
面向对象的基本特征就三个:继承、封装、多态,并没有反射的事情
提高可维护性和可扩展性的良药就是解耦、抽象,而这些正是设计模式所要解决的问题,只要你使用了面向对象的编程语言,就可以说你就是在OO,哪怕你把所有逻辑全写在Main中,那也是用类的方法在做事情,还是OO,而至于是否用好了OO就要看你对设计的理解和把握了,而捷径正是此番讨论的主题
#21楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 13:37
@一抹微蓝
呵呵,多看看吕震雨的文章会对设计模式有更深刻的了解
借此机会感谢他
#22楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 13:44
@Cure
讨论可以有一个大致的方向然后各抒己见
专题文章后面的讨论往往都是就事论事,普遍问题可能关注的少一些
昨天发了第一个讨论题目,反响还不错,于是今天我就又如法炮制
如果大家都积极支持,我会继续下去的
当然了,技术文章还是要做的,讨论完了理论总得实践实践吧,呵呵
#23楼     回复  引用    
 zbh [未注册用户] | 2008-02-19 18:16
模板模式

用的最多了
#24楼     回复  引用  查看    
 金色海洋(jyk)       | 2008-02-19 19:46
找一个具体点的例子来讨论吧。
#25楼 [楼主]    回复  引用  查看    
 鸿峰师兄       | 2008-02-19 21:42
@zbh
一般学设计模式的人都有过这样的经历:这模板模式怎么我还没学就用过了,哈哈
#26楼     回复  引用    
 testpzq [未注册用户] | 2008-02-20 13:40
--引用--------------------------------------------------
zbh: 模板模式

用的最多了
--------------------------------------------------------
--引用--------------------------------------------------
鸿峰师兄: @zbh
一般学设计模式的人都有过这样的经历:这模板模式怎么我还没学就用过了,哈哈
--------------------------------------------------------


同意!
#27楼     回复  引用  查看    
 毁于随       | 2008-03-05 08:47
博主,忙烦把吕震雨的博客地址帖一下吧.
#28楼 [楼主]    回复  引用  查看    
 floodpeak       | 2008-03-05 09:03
@毁于随
见我右边的关注博客

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-19 09:07 编辑过
 
另存  打印