初学软件设计模式应该读哪本书？
我因为上《软件架构与设计模式》这门课，所以基本目前市面上比较主流的关于设计模式的书我都或多或少看过。我不知道你的水平如何，以及学习设计模式的目的（是仅仅是想做个入门先还是想直接在现有的工作中用上设计模式），所以无法直接推荐。现在我就简单评价一下我看过的书，由你自己选择。 《设计模式》（GOF）：不推荐初学者看。这四人都是Phd级别，就是他们最先提出了设计模式，理论水平高，虽然薄薄一本，但是文字相对晦涩，也缺乏容易理解的例子。等你到一定程度了，有兴趣的话可以看一下。 《Head First设计模式》：好书，里面的例子生活化，而且非常贴切，读起来比较有乐趣，一步一步推进，逻辑上也很清晰。
书中语言采用的是Java。 如果你不被它的接近700页的厚度吓到的话，属于入门的好书。缺点是缺乏实际工程实践的例子，但是对于你入门，对各种设计模式有个初步的理解，是很有益处的。这本书是我向学生首推的一本关于设计模式的书。 《大话设计模式》（程杰）：在前几年我刚接手《软件架构与设计模式》这门课的时候，市面上关于设计模式的书还比较少，国内作者出品的同类书籍更少，这本书属于最出名的一本。
书中采用的语言是C#。 前几章介绍了一下OOP/OOD的几个基本原则，如果你对OOP/OOD中的接口，继承，多态这些概念不是很清楚（或者只是知道概念，不知道如何使用的话），可以选择这本书。个人感觉（不一定对），这本书在很大程度上模仿了《Head First》的写作风格，但是有点为了举例而举例的感觉，有些例子比较牵强，无助于理解，反而有可能造成误解。行文上某些时候为了幽默而幽默，效果也不好。另外也基本没有在工程实践中的应用。总体来说，不如《Head First》。 《设计模式》（刘伟，清华大学出版社）：这本书出来的比较新，说实话我都没读过。不过这本书的定位就是作为设计模式的入门教材，加上清华大学出版社的金字招牌，质量还是非常有保障的。通过我对此书配备的PPT，以及作者网站（ ，上面有很多非常好的内容，不仅限于设计模式）的了解，此书应该还是很适合初学者入门之用，里面也有不少实际工程中的例子可供参考。不过限于篇幅，书中的内容更偏重于对设计模式本身的讲解。作者还推出了其他几本书，如和此书配套的《设计模式实训教程》，不过我没读过，所以就不评价了。另外还有《C#设计模式》和《
设计模式的艺术——软件开发人员内功修炼之道 》（此书从书名来看，应该更贴近于工程实践中的应用）。 《设计模式:基于C#的工程化实现及扩展》（王翔）：如果你对设计模式有了一定的了解，而且想要在工作中使用设计模式的话，这本书是我最推荐的一本书。从书中就可以看出，作者具有相当丰富的工程实践经验，而且不像某些技术人员，他的文字功底也很好，逻辑思维非常清晰，如果放在高校软件学院里，上个相关的研究生课程应该不成问题。而且书中的内容不仅限于介绍GOF的经典设计模式，更强调它们之间的融合，并介绍了其他的一些设计模式，其中关于实践应用的各种案例非常非常非常有参考价值。 《设计模式之禅》与《研磨设计模式》：这两本书都没有仔细通篇看过，而且风格与定位都类似，所以放在一起介绍了。这两本书的特点都是作者先在自己的博客上发表了一些关于设计模式的文章，然后再整理起来成为了一本书。如果一时半会找不到书或者不想买的话，可以到网上搜索他们的博客。就我读过的章节来说，我相对地更加推荐《研磨设计模式》这本书，每种设计模式都配有如何在工程中应用的非常详细的讲解，并会对经典的设计模式有一个扩展，找的例子也更加贴切一些。如果你已经对设计模式的基本概念有了了解，想要进一步深入的话，推荐《研磨设计模式》，如果你觉得还想更加扩展对于某个模式的了解，可以再配合着看一下《设计模式之禅》。 总结：我的推荐列表如下： 入门（《Head First设计模式》/《设计模式》（刘伟）+《设计模式实训教程》（刘伟））→进阶（《研磨设计模式》/《设计模式之禅》）→应用（《设计模式:基于C#的工程化实现及扩展》）→理论提高（GOF《设计模式》） 2013-08-10修改====================================================== 建议每一位对设计模式有兴趣学习的人，先从刘伟的《 设计模式的艺术——软件开发人员内功修炼之道 》看起。这就是最近花时间读了以后的感受。