码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式书籍总结

时间:2016-04-30 12:47:18      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

 

《设计模式》(GOF):不推荐初学者看。这四人都是Phd级别,就是他们最先提出了设计模式,理论水平高,虽然薄薄一本,但是文字相对晦涩,也缺乏容易理解的例子。等你到一定程度了,有兴趣的话可以看一下。

《Head First设计模式》:好书,里面的例子生活化,而且非常贴切,读起来比较有乐趣,一步一步推进,逻辑上也很清晰。 书中语言采用的是Java。 如果你不被它的接近700页的厚度吓到的话,属于入门的好书。缺点是缺乏实际工程实践的例子,但是对于你入门,对各种设计模式有个初步的理解,是很有益处的。这本书是我向学生首推的一本关于设计模式的书。

《大话设计模式》(程杰):在前几年我刚接手《软件架构与设计模式》这门课的时候,市面上关于设计模式的书还比较少,国内作者出品的同类书籍更少,这本书属于最出名的一本。 书中采用的语言是C#。 前几章介绍了一下OOP/OOD的几个基本原则,如果你对OOP/OOD中的接口,继承,多态这些概念不是很清楚(或者只是知道概念,不知道如何使用的话),可以选择这本书。个人感觉(不一定对),这本书在很大程度上模仿了《Head First》的写作风格,但是有点为了举例而举例的感觉,有些例子比较牵强,无助于理解,反而有可能造成误解。行文上某些时候为了幽默而幽默,效果也不好。另外也基本没有在工程实践中的应用。总体来说,不如《Head First》。

《设计模式》(刘伟,清华大学出版社):这本书出来的比较新,说实话我都没读过。不过这本书的定位就是作为设计模式的入门教材,加上清华大学出版社的金字招牌,质量还是非常有保障的。通过我对此书配备的PPT,以及作者网站(刘伟技术博客 ,上面有很多非常好的内容,不仅限于设计模式)的了解,此书应该还是很适合初学者入门之用,里面也有不少实际工程中的例子可供参考。不过限于篇幅,书中的内容更偏重于对设计模式本身的讲解。作者还推出了其他几本书,如和此书配套的《设计模式实训教程》,不过我没读过,所以就不评价了。另外还有《C#设计模式》和《 设计模式的艺术——软件开发人员内功修炼之道 》(此书从书名来看,应该更贴近于工程实践中的应用)。

《设计模式:基于C#的工程化实现及扩展》(王翔):如果你对设计模式有了一定的了解,而且想要在工作中使用设计模式的话,这本书是我最推荐的一本书。从书中就可以看出,作者具有相当丰富的工程实践经验,而且不像某些技术人员,他的文字功底也很好,逻辑思维非常清晰,如果放在高校软件学院里,上个相关的研究生课程应该不成问题。而且书中的内容不仅限于介绍GOF的经典设计模式,更强调它们之间的融合,并介绍了其他的一些设计模式,其中关于实践应用的各种案例非常非常非常有参考价值。

《设计模式之禅》与《研磨设计模式》:这两本书都没有仔细通篇看过,而且风格与定位都类似,所以放在一起介绍了。这两本书的特点都是作者先在自己的博客上发表了一些关于设计模式的文章,然后再整理起来成为了一本书。如果一时半会找不到书或者不想买的话,可以到网上搜索他们的博客。就我读过的章节来说,我相对地更加推荐《研磨设计模式》这本书,每种设计模式都配有如何在工程中应用的非常详细的讲解,并会对经典的设计模式有一个扩展,找的例子也更加贴切一些。如果你已经对设计模式的基本概念有了了解,想要进一步深入的话,推荐《研磨设计模式》,如果你觉得还想更加扩展对于某个模式的了解,可以再配合着看一下《设计模式之禅》。《设计模式之禅》,他用浅显易懂的代码讲明白道理,之所以讨厌《大话设计模式》,是因为他尝试用编可笑的故事来尝试让我明白,让我觉得作者严重低估了读者的智商

总结:我的推荐列表如下:
入门(《Head First设计模式》/《设计模式》(刘伟)+《设计模式实训教程》(刘伟))→进阶(《研磨设计模式》/《设计模式之禅》)→应用(《设计模式:基于C#的工程化实现及扩展》)→理论提高(GOF《设计模式》)


每年面试应届毕业生的时候和他们聊着他们会点什么,聊到设计模式的时候他们总会似懂非懂地说上一堆. 我不是反对或者是说设计模式没用,我是坚持地认为,设计模式非常有用,以至于当你成为大牛以后,可以和人聊架构的时候,像您这样,说上一大堆Spring哪个模块用了哪个设计模式. 这也就是我的回答里面的第一点:反而成为装逼吹水的谈资。 

这就是我回答里面的第一句话: 不会设计模式,你连逼都装不起.

您是否已经厌倦了关于贫血模型和充血模型的讨论, 软件设计究竟是用面向领域的设计呢,还是面向切面的设计,甚至你看到OOD OOM OOP就想吐? 再想想年轻时代每天必开的Enterprise Architect已经默默吃灰了许久?

问问自己,
是否已经忘记了三个月前你设计的无比牛逼的系统的初衷? 
或者你准备离职,却发现在交接的时候,被问到为什么用这种设计的时候你在无语哽咽?
或者是一个接口只有了一个实现类?
或者是代码跳转的时候,跳转到了接口而不是实现类,你在暗地骂IDE不智能?

可能一切只源于你还在懵懂年代的一个想法"学以致用"?

试问多少人在软件行业耕耘了多少年,又有多少人参与了各种牛逼哄哄的框架开发,系统开发? 有多少架构师可以主导50人以上的系统的并行开发?又或者,我们扣心自问,我们设计的系统为了迎合设计模式,浪费了多少行代码,增加了多少复杂度,提高了多少的培训成本?

这就是我评论所说,纸上谈兵,出去工作以后害人害己.

我的确没有完整研读过Java,以及Java各大框架的源码,只是生成他们的UML图,草草看看而已.
 
 
对一些喜欢用设计模式装逼的人的不满。我是一个初出茅庐的毕业生,刚工作一个月的时候发现做东西经常因为来回的修改代码浪费大量的时间,后来做到某一个模块因为大学的时候学设计模式记得一个工厂模式,搜了搜复习了一下就用上了,发现明显那个模块的实现很方便,改动也较少。我感觉是这样的,设计模式当然要趁早学,虽然没一些项目经验是肯定不能熟练运用的,但是至少能在你脑子里留下一个概念和印象,说不定你在实现某个class的时候想起来了觉得合适,就这么用上了。

设计模式书籍总结

标签:

原文地址:http://www.cnblogs.com/destim/p/5448431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!