设计模式之禅(第2版)

秦小波

出版时间

2014-02-24

ISBN

9787111437871

评分

★★★★★
书籍介绍

本书是设计模式领域公认的3本经典著作之一,“极具趣味,容易理解,但讲解又极为严谨和透彻”是本书的写作风格和方法的最大特点。第1版2010年出版,畅销至今,广受好评,是该领域的里程碑著作。深刻解读6大设计原则和28种设计模式的准确定义、应用方法和最佳实践,全方位比较各种同类模式之间的异同,详细讲解将不同的模式组合使用的方法。第2版在第1版的基础上有两方面的改进,一方面结合读者的意见和建议对原有内容中的瑕疵进行了修正和完善,另一方面增加了4种新的设计模式,希望这一版能为广大程序员们奉上一场更加完美的设计模式盛宴!

全书共38章,分为五部分:第一部分(第1~6章),以一种全新的视角对面向对象程序设计的6大原则进行了深刻解读,旨在让读者能更深刻且准确地理解这些原则,为后面的学习打下基础;第二部分(第7~29章)通过大量生动的案例讲解和分析了23种最常用的设计模式,并进行了扩展讲解,通俗易懂,趣味性极强而又紧扣模式的核心;第三部分(第30~33章)对同类型和相关联的模式进行了深入分析和比较,旨在阐明各种设计模式之间的差别以及它们的理想应用场景;第四部分(第34~36章)探讨了如何在实际开发中将各种设计模式混合起来使用,以发挥设计模式的最大效用;第五部分(第37~38章)是本书的扩展篇,首先从实现的角度对MVC框架的原理进行了深入分析,然后讲解了5种新的设计模式的原理、意图和最佳实践。本书最后附有一份精美的设计模式彩图,可以裁剪,便于参考。

秦小波 资深软件开发工程师、系统分析师和架构师(获Sun架构师认证),从事软件开发工作10余年,实践经验极其丰富。精通设计模式,对设计模式有深刻的认识和独到见解,而且创造性地提出了自己在大量实践中总结出来的新的设计模式。资深Java技术专家,精通Java语言、Spring、Struts 2、Hibernate、iBatis、jBPM等Java技术,在企业级Java应用领域积累了大量工程经验,对ESB、BPEL等整合技术也有较深入的认识。此外,他还是一位优秀的DBA,具有IBM DB2 DBA资格认证,对海量数据处理有深入的研究。除本书外,他还著有畅销书《编写高质量代码:改善Java程序的151个建议》,同样广受读者好评!

AI导读
核心看点
  • 深刻解读六大设计原则,奠定面向对象基础
  • 通过生动案例详解28种设计模式及应用
  • 深入比较同类模式差异,指导混合使用
适合谁读
  • 希望系统学习设计模式的Java开发者
  • 寻求提升软件架构能力的程序员
  • 觉得GOF原著晦涩的初学者
读前提醒
  • 写作风格幽默但部分例子略显牵强
  • 建议结合实战代码阅读,勿仅看理论
  • 可裁剪附录彩图,便于日常查阅参考
读者共识
  • 通俗易懂,比经典原著更易入门
  • 模式对比与混合使用章节价值高
  • 部分代码示例严谨性有待商榷

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "Spring、Struts等工具框架类的书太多太多,很难再写出花样来,经过一番思考,最后选择了一个每一位技术人员都需要掌握的、但普及程度还不是非常高的、又稍微有点难度的主题--设计模式(Design Pattern, DP)。 设计模式是什么?它是一套理论,由软件界的前辈们(The Gang of Four:包括 Erich Gamma、Richard Helm、Ralph Johnson、John Wlissides)总结出的一套可以反复使用的经验,它可以提高代码的可重用性,增强系统的可维护性,以及解决一系列的复杂问题。 ... ... 只要知道在Java中(//)代表注释就足够了"
  • "class HanfeiZi extends Oberverable,IHanFeiZi"
  • "单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。"
  • "只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。"
  • "在类中调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则。"
作者简介
秦小波 资深软件开发工程师、系统分析师和架构师(获Sun架构师认证),从事软件开发工作10余年,实践经验极其丰富。精通设计模式,对设计模式有深刻的认识和独到见解,而且创造性地提出了自己在大量实践中总结出来的新的设计模式。资深Java技术专家,精通Java语言、Spring、Struts 2、Hibernate、iBatis、jBPM等Java技术,在企业级Java应用领域积累了大量工程经验,对ESB、BPEL等整合技术也有较深入的认识。此外,他还是一位优秀的DBA,具有IBM DB2 DBA资格认证,对海量数据处理有深入的研究。除本书外,他还著有畅销书《编写高质量代码:改善Java程序的151个建议》,同样广受读者好评!
目录
前 言
第一部分 大旗不挥,谁敢冲
锋—6大设计原则全新解读
第1章 单一职责原则 2
1.1 我是“牛”类,我可以担任多职吗 2

显示全部
用户评论
买了[日] 结城浩 写的图解设计模式看不懂,这本竟然很幽默,通俗易懂,良作
第一章SRP就讲不清楚,改编Agile Software development的代码样例,但改得更乱。不推荐。
栗子通俗易懂!
非常好的一本书,通俗易懂,很有趣
有几个模式的例子举得不好
我曾经是这本书作者的下属,在他指导下参与某个大型微服务的开发,且在开发过程中我接手过他的代码。他对微服务所知甚少,做出了很多显而易见的错误。同时代码写得实在糟糕,非常喜欢把多行代码写成一行,这样缺少层次的代码其实是非常难读的。可知他的水平实在一般,所以我不太相信他能写出精深的作品。 这条评论适用于他的另外一本书《编写高质量代码:改善Java程序的151个建议》
再过一遍
有很多例子,设计模式理解起来更容易了,还是需要在实践中多用,才能真正的学会
通过隐喻的方式确实有助于对主题的理解,但是如果隐喻如果不恰当反而会产生误导的副作用,比如这本书。我相信作者对于设计模式是有一定思考的,希望能够在隐喻和联想方面多下功夫。
下载
收藏