日期:2014-05-20  浏览次数:20909 次

请大家结合自已的工作经验谈什么是设计模式?
在网上找了好多资料都是理论方面的,看不明白。
请大家结合自已的工作经验谈什么是设计模式?最好能举些实例。

------解决方案--------------------
等你做了系统分析员 自己设计架构 漫漫你就明白了
------解决方案--------------------
你写了实现某种功能的代码,过几天后,要添加一些功能,发现不好添加,后来,你发现运行效率不高,便对某些代码进行修改重写(重构),到最后你又发现,这些代码,在实现原功能情形下,其实可以换作另一种方法来实现,从而更高效,更易于扩展,当你采用这个好方法的时候,这些方法就是设计模式了.


------解决方案--------------------
感觉自己的东西比较有复用价值,给它里边各个细节分别起绝对可以哗众取宠的名字,就可以作为模式了。注意,要拼命讲述细节,这样你就能将任何细节都叫做另外的模式。

例如下楼,你不要搞一个下楼模式,而要拆解成“伸腿下楼模式”、“背包下楼模式”、“空腹下楼模式”、“吃饱下楼模式”、“一边下楼一边打电话模式”,本来本平常的动作都只要你会炒作都可以成为模式。模式,借着OO盛名,可以将小流派硬说成大家。
------解决方案--------------------
设计模式八股”的危害很大,它不仅将那活生生的设计模式弄得干瘪、晦涩、无味、面目可憎,使得朋友们难以明白,更使一些人因此脱离了最初的OOAD而变成盲目拼凑结构了。扩展、委派、将合同声明与实现分离等最基本的三四种基本技术形式而已。OOA也D极其强调动态建模,如果仅从静态建模的角度,反反复复地纠缠于概念的正名、考究,早晚会要忘记了OO到底目的是要干什么。
------解决方案--------------------
同意sp1234的说法

不要刻意地去套什么设计模式
最重要的是业务逻辑,实现方法,要按你自己的思路去设计
有时候你会发现你的设计恰好契合了某种设计模式
但这绝对不是必需的!
------解决方案--------------------
设计模式如武功招式,如别人一说:电炮,你就明白这是用拳头往脸上打的招式,这就是一个设计模式了。不过大师们感觉这样还不过瘾,于是他们说“电炮”不算设计模式。那什么是设计模式呢?“弓步顶肘”算是一个基本的,这招是让你先来个弓步,再顶一下肘子,就完成了一个设计模式。
  很多人学武功的时候,都想学学设计模式,为什么呢?因为这是别人总结好的东西,人家来个“电炮”,你就用“顺手牵羊”来应付,总是没有错的。这也体现了学习设计模式的用途:有招可用。
  但是偏有些人,没有师傅教过武功,也不懂设计模式。于是人家来个“电炮”,他也来个“电炮”,而且还将人打倒了。于是师傅们出来说话了:“你这叫什么招式?靠,没有这么打的,你回家学学设计模式再回来打吧”。于是我们这位小兄弟就算不得武林人士,只好回家。
  这位仁兄回家后还有两个版本:
  (1)回家后练了几天“上步冲靠、背步里肘、旋风双钟、外门顶肘”,自以为会了几招,上来又找人练,这回人家来个“电炮”,他来个“上步冲靠”,正好将大好的FACE教人打个开花。于是师傅们满意了:“虽然挨了打,但总算是入门了,懂得用设计模式做程序了,小伙子大有前途”。于是这位小兄弟日后可以师成一派,教别人如何应用设计模式来做程序了。
  (2)回家后越想越不服气:”靠,不会武功?不会武功能把会武功的打倒?”。于是这位小兄弟日后专找会武功的打,其间打过别人,也被别人打过。如此打了几年下来,突然发现一本武功秘籍“设计模式”,于是拿来看了几眼,一看之下大吃一惊:“靠他姥姥的,什么秘籍,不就是我跟别人打架总结出来的那几招么?”,于是这位仁兄开山立派,也写了本书叫:再论设计模式,以此为教材,很是赚了一些银两。
  以上为本人戏解设计模式,如他日出书,必定以此为序。
  呵呵......


------解决方案--------------------
我的感觉:

第一种情况。
第一次写新闻系统用了十天。
第二次再写只用了五天。
第三次再写,发现了很多重复的地方,先总结了一下,把那些重复的地方凑向了出来,写成函数、类、控件之类的进行重用。
第四次再写,发现把那些类了甚么的重新组合一下就可以了。

然后拿中就有了一个“套路”,以后再写什么其他的东东都套用这个方法。

当然会有“碰壁”的情况,然后思考......找到原因,升级这个“套路”。

最后你的“套路”可以放之四海而皆准,那你就成功了!


等等好像跑题了,这好像是传说中的“银弹”。


最后:适合自己的就是最好的,管其他人怎么说呢!除非自己感觉不好用了。