设计模式

设计模式

学习设计模式的人大多有这样的经历,刚开始学习了一两个模式,感觉太有用,简直如有神助,就像一个人突然有一天拿到一个锤子,然后看什么都像是钉子,情不自禁的想上去敲两下,以显示锤子的威力。但是随着学习的深入,知道了更多的模式,情况就变了。感觉别说用了,能区分这些模式就不错了,更谈不上用了。其实大部分人学习设计模式的过程中都会遇到类似的困难,并不是我们笨或者不够聪明,这是由人类的大脑结构和思维方式决定的。但是对于一个真正掌握了设计模式的人来讲,似乎并没有这么多障碍,其实不是他多聪明而是他走过了别人还没有走过的路,抓住了设计模式的本质。

设计模式的目的?严格的讲,设计模式是软件工程发展的产物,它帮助程序员更好的设计软件,使得设计的软件能够尽量的重用,易于开发,便于维护。

设计模式的和编程语言的关系?设计模式可以认为比高级编程语言更高一个层次。高级语言无法直接执行,它依赖编译去把它转化为汇编语言,再进一步转化为机器码,计算机才能执行。就像高级语言需要转化为汇编语言一样,设计模式需要面向对象语言。简单的可以这样理解,高级语言是一门以变量和函数为素材的语言,而设计模式是以对象/类素材的语言。

设计模式是什么?是经验总结,其实设计模式这个名字虽然来自建筑学,但是它还是很精确的,我们并没有说什么设计理论,设计方法,或者设计机制。而是用了模式这个词,模式本身的意思就是一种常见的方式。

设计模式会影响程序的执行效率吗?设计模式的实现依赖的是高级编程语言的语义,也就是说,机器并不能识别设计模式,CPU执行指令的之后,只知道机器码,而并不知道上层的概念。一般来讲,设计模式肯定不会提高程序的执行效率,但是如果用的好的话,会提高程序员的开发效率。

设计模式的原则,设计模式要表达那些概念?重用,独立,目标是要用面向对象的封装,继承,多态,在有些时候要用模板

设计模式的具体实现和面向对象,设计模式是对接口编程,而不是对实现编程。因为实现的部分,基本上是算法和数据结构的任务。

那么多设计模式,单单记住名字都不容易了,到底该怎么学呢?其实,设计模式对应的是一类场景,或者说是一类场景的抽象。设计模式的静态性和设计模式的动态性。学习设计模式要关注几个方面,用户如何使用?

设计模式的比较。

程序员应该如何对待设计模式?设计模式不是万能的,也不是非用不可的(在设计模式之前,软件开发不是也存在了很多年么?)。我们对待设计模式的态度应该是积极的,实际的。除非很明显的场景,很多场景不能直接套用现有的模式或者我们无法很短时间内就知道这个场景适合某个模式,而是发现程序中不合理,或者说不舒服的地方,对程序进行一步一步改进,在这个改进的过程中,可能会发现程序的场景正好适合某个模式,于是开始使用这个模式。

熟悉设计模式的一个方法,事实证明,人类的大脑是很容易被洗的,因此我建议,其实人世间并没有设计模式,被洗多了,也就知道设计模式了。

设计模式的综合使用

设计模式的实践

posted on 2012-10-18 19:10 侯京彪 阅读(169) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜