Blue Flower

设计模式之禅第2版是设计模式领域公认的3本经典著作之一,由资深软件开发工程师秦小波编著。本书深刻解读了6大软件设计原则和28种设计模式的准确定义、应用方法和实践,全方位比较各种同类模式之间的异同,详细讲解了组合使用不同模式的方法,并且本书在第1版的基础上有两方面的改进,一方面结合读者的意见和建议对原有内容中的瑕疵进行了修正和完善,另一方面增加了4种新的设计模式,包括对象池模式、雇工模式、黑板模式、空指针模式,希望这一版能为广大程序员们奉上一场更加完美的设计模式盛宴。
202209171655130858810000

内容介绍

《设计模式之禅第2版》是设计模式领域公认的3本经典著作之一,“极具趣味,容易理解,但讲解又极为严谨和透彻”是本书的写作风格和方法的大特点。第1版2010年出版,畅销至今,广受好评,是该领域的里程碑著作。深刻解读6大设计原则和28种设计模式的准确定义、应用方法和佳实践,全方位比较各种同类模式之间的异同,详细讲解将不同的模式组合使用的方法。
《设计模式之禅第2版》全书共38章,分为五部分:第一部分(第1~6章),以一种全新的视角对面向对象程序设计的6大原则进行了深刻解读,旨在让读者能更深刻且准确地理解这些原则,为后面的学习打下基础;第二部分(第7~29章)通过大量生动的案例讲解和分析了23种常用的设计模式,并进行了扩展讲解,通俗易懂,趣味性极强而又紧扣模式的核心;第三部分(第30~33章)对同类型和相关联的模式进行了深入分析和比较,旨在阐明各种设计模式之间的差别以及它们的理想应用场景;第四部分(第34~36章)探讨了如何在实际开发中将各种设计模式混合起来使用,以发挥设计模式的大效用;第五部分(第37~38章)是本书的扩展篇,首先从实现的角度对MVC框架的原理进行了深入分析,然后讲解了5种新的设计模式的原理、意图和佳实践。本书后附有一份精美的设计模式彩图,可以裁剪,便于参考。
202209171655134129870001

章节目录

前言第一部分 大旗不挥,谁敢冲锋—6大设计原则全新解读第1章 单一职责原则 21.1 我是“牛”类,我可以担任多职吗 21.2 绝杀技,打破你的传统思维 31.3 我单纯,所以我快乐 61.4 最佳实践 7第2章 里氏替换原则 82.1 爱恨纠葛的父子关系 82.2 纠纷不断,规则压制 92.3 最佳实践 18第3章 依赖倒置原则 193.1 依赖倒置原则的定义 193.2 言而无信,你太需要契约 203.3 依赖的三种写法 253.4 最佳实践 26第4章 接口隔离原则 284.1 接口隔离原则的定义 284.2 美女何其多,观点各不同 294.3 保证接口的纯洁性 334.4 最佳实践 35第5章 迪米特法则 365.1 迪米特法则的定义 365.2 我的知识你知道得越少越好 365.3 最佳实践 43第6章 开闭原则 446.1 开闭原则的定义 446.2 开闭原则的庐山真面目 446.3 为什么要采用开闭原则 496.4 如何使用开闭原则 516.5 最佳实践 55第二部分 真刀实枪—23种设计模式完美演绎第7章 单例模式 587.1 我是皇帝我独苗 587.2 单例模式的定义 597.3 单例模式的应用 607.3.1 单例模式的优点 607.3.2 单例模式的缺点 607.3.3 单例模式的使用场景 617.3.4 单例模式的注意事项 617.4 单例模式的扩展 627.5 最佳实践 64第8章 工厂方法模式 658.1 女娲造人的故事 658.2 工厂方法模式的定义 698.3 工厂方法模式的应用 708.3.1 工厂方法模式的优点 708.3.2 工厂方法模式的使用场景 718.4 工厂方法模式的扩展 718.5 最佳实践 77第9章 抽象工厂模式 789.1 女娲的失误 789.2 抽象工厂模式的定义 839.3 抽象工厂模式的应用 869.3.1 抽象工厂模式的优点 869.3.2 抽象工厂模式的缺点 869.3.3 抽象工厂模式的使用场景 869.3.4 抽象工厂模式的注意事项 869.4 最佳实践 87第10章 模板方法模式 8810.1 辉煌工程—制造悍马 8810.2 模板方法模式的定义 9310.3 模板方法模式的应用 9410.3.1 模板方法模式的优点 9410.3.2 模板方法模式的缺点 9510.3.3 模板方法模式的使用场景 9510.4 模板方法模式的扩展 9510.5 最佳实践 99第11章 建造者模式 10011.1 变化是永恒的 10011.2 建造者模式的定义 10911.3 建造者模式的应用 11111.3.1 建造者模式的优点 11111.3.2 建造者模式的使用场景 11111.3.3 建造者模式的注意事项 11111.4 建造者模式的扩展 11111.5 最佳实践 112第12章 代理模式 11312.1 我是游戏至尊 11312.2 代理模式的定义 11612.3 代理模式的应用 11812.3.1 代理模式的优点 11812.3.2 代理模式的使用场景 11912.4 代理模式的扩展 11912.4.1 普通代理 11912.4.2 强制代理 12112.4.3 代理是有个性的 12612.4.4 动态代理 12812.5 最佳实践 134第13章 原型模式 13513.1 个性化电子账单 13513.2 原型模式的定义 14113.3 原型模式的应用 14213.3.1 原型模式的优点 14213.3.2 原型模式的使用场景 14213.4 原型模式的注意事项 14313.4.1 构造函数不会被执行 14313.4.2 浅拷贝和深拷贝 14413.4.3 clone与final两个冤家 14613.5 最佳实践 146第14章 中介者模式 14714.1 进销存管理是这个样子的吗 14714.2 中介者模式的定义 15614.3 中介者模式的应用 15914.3.1 中介者模式的优点 15914.3.2 中介者模式的缺点 15914.3.3 中介者模式的使用场景 15914.4 中介者模式的实际应用 16014.5 最佳实践 161第15章 命令模式 16215.1 项目经理也难当 16215.2 命令模式的定义 17015.3 命令模式的应用 17315.3.1 命令模式的优点 17315.3.2 命令模式的缺点 17315.3.3 命令模式的使用场景 17315.4 命令模式的扩展 17315.4.1 未讲完的故事 17315.4.2 反悔问题 17415.5 最佳实践 175第16章 责任链模式 17816.1 古代妇女的枷锁—“三从四德” 17816.2 责任链模式的定义 18616.3 责任链模式的应用 18916.3.1 责任链模式的优点 18916.3.2 责任链模式的缺点 19016.3.3 责任链模式的注意事项 19016.4 最佳实践 190第17章 装饰模式 19217.1 罪恶的成绩单 19217.2 装饰模式的定义 19817.3 装饰模式应用 20117.3.1 装饰模式的优点 20117.3.2 装饰模式的缺点 20117.3.3 装饰模式的使用场景 20117.4 最佳实践 201第18章 策略模式 20318.1 刘备江东娶妻,赵云他容易吗 20318.2 策略模式的定义 20618.3 策略模式的应用 20818.3.1 策略模式的优点 20818.3.2 策略模式的缺点 20818.3.3 策略模式的使用场景 20918.3.4 策略模式的注意事项 20918.4 策略模式的扩展 20918.5 最佳实践 214第19章 适配器模式 21519.1 业务发展—上帝才能控制 21519.2 适配器模式的定义 22119.3 适配器模式的应用 22319.3.1 适配器模式的优点 22319.3.2 适配器模式的使用场景 22419.3.3 适配器模式的注意事项 22419.4 适配器模式的扩展 22419.5 最佳实践 229第20章 迭代器模式 23020.1 整理项目信息—苦差事 23020.2 迭代器模式的定义 23620.3 迭代器模式的应用 23920.4 最佳实践 239第21章 组合模式 24021.1 公司的人事架构是这样的吗 24021.2 组合模式的定义 25321.3 组合模式的应用 25521.3.1 组合模式的优点 25521.3.2 组合模式的缺点 25621.3.3 组合模式的使用场景 25621.3.4 组合模式的注意事项 25621.4 组合模式的扩展 25621.4.1 真实的组合模式 25621.4.2 透明的组合模式 25721.4.3 组合模式的遍历 25921.5 最佳实践 260第22章 观察者模式 26222.1 韩非子身边的卧底是谁派来的 26222.2 观察者模式的定义 27122.3 观察者模式的应用 27322.3.1 观察者模式的优点 27322.3.2 观察者模式的缺点 27422.3.3 观察者模式的使用场景 27422.3.4 观察者模式的注意事项 27422.4 观察者模式的扩展 27522.4.1 Java世界中的观察者模式 27522.4.2 项目中真实的观察者模式 27622.4.3 订阅发布模型 27722.5 最佳实践 277第23章 门面模式 27823.1 我要投递信件 27823.2 门面模式的定义 28323.3 门面模式的应用 28423.3.1 门面模式的优点 28423.3.2 门面模式的缺点 28523.3.3 门面模式的使用场景 28523.4 门面模式的注意事项 28523.4.1 一个子系统可以有多个门面 28523.4.2 门面不参与子系统内的业务逻辑 28623.5 最佳实践 288第24章 备忘录模式 28924.1 如此追女孩子,你还不乐 28924.2 备忘录模式的定义 29424.3 备忘录模式的应用 29724.3.1 备忘录模式的使用场景 29724.3.2 备忘录模式的注意事项 29724.4 备忘录模式的扩展 29724.4.1 clone方式的备忘录 29724.4.2 多状态的备忘录模式 30024.4.3 多备份的备忘录 30424.4.4 封装得更好一点 30524.5 最佳实践 307第25章 访问者模式 30825.1 员工的隐私何在 30825.2 访问者模式的定义 31625.3 访问者模式的应用 32025.3.1 访问者模式的优点 32025.3.2 访问者模式的缺点 32025.3.3 访问者模式的使用场景 32025.4 访问者模式的扩展 32125.4.1 统计功能 32125.4.2 多个访问者 32325.4.3 双分派 32625.5 最佳实践 328第26章 状态模式 32926.1 城市的纵向发展功臣—电梯 32926.2 状态模式的定义 34126.3 状态模式的应用 34326.3.1 状态模式的优点 34326.3.2 状态模式的缺点 34426.3.3 状态模式的使用场景 34426.3.4 状态模式的注意事项 34426.4 最佳实践 344第27章 解释器模式 34627.1 四则运算你会吗 34627.2 解释器模式的定义 35227.3 解释器模式的应用 35427.3.1 解释器模式的优点 35427.3.2 解释器模式的缺点 35427.3.3 解释器模式使用的场景 35527.3.4 解释器模式的注意事项 35527.4 最佳实践 355第28章 享元模式 35628.1 内存溢出,司空见惯 35628.2 享元模式的定义 36128.3 享元模式的应用 36428.3.1 享元模式的优点和缺点 36428.3.2 享元模式的使用场景 36428.4 享元模式的扩展 36528.4.1 线程安全的问题 36528.4.2 性能平衡 36628.5 最佳实践 369第29章 桥梁模式 37129.1 我有一个梦想 37129.2 桥梁模式的定义 37929.3 桥梁模式的应用 38129.3.1 桥梁模式的优点 38129.3.2 桥梁模式的使用场景 38229.3.3 桥梁模式的注意事项 38229.4 最佳实践 382第三部分 谁的地盘谁做主—设计模式PK第30章 创建类模式大PK 38430.1 工厂方法模式VS建造者模式 38430.1.1 按工厂方法建造超人 38430.1.2 按建造者模式建造超人 38630.1.3 最佳实践 38930.2 抽象工厂模式VS建造者模式 39030.2.1 按抽象工厂模式生产车辆 39030.2.2 按建造者模式生产车辆 39430.2.3 最佳实践 399第31章 结构类模式大PK 40031.1 代理模式VS装饰模式 40031.1.1 代理模式 40031.1.2 装饰模式 40231.1.3 最佳实践 40331.2 装饰模式VS适配器模式 40431.2.1 用装饰模式描述丑小鸭 40431.2.2 用适配器模式实现丑小鸭 40731.2.3 最佳实践 410第32章 行为类模式大PK 41132.1 命令模式VS策略模式 41132.1.1 策略模式实现压缩算法 41132.1.2 命令模式实现压缩算法 41432.1.3 小结 41932.2 策略模式VS状态模式 42032.2.1 策略模式实现人生 42032.2.2 状态模式实现人生 42332.2.3 小结 42532.3 观察者模式VS责任链模式 42632.3.1 责任链模式实现DNS解析过程 42732.3.2 触发链模式实现DNS解析过程 43232.3.3 小结 437第33章 跨战区PK 43833.1 策略模式VS桥梁模式 43833.1.1 策略模式实现邮件发送 43933.1.2 桥梁模式实现邮件发送 44233.1.3 最佳实践 44533.2 门面模式VS中介者模式 44633.2.1 中介者模式实现工资计算 44633.2.2 门面模式实现工资计算 45133.2.3 最佳实践 45433.3 包装模式群PK 45533.3.1 代理模式 45533.3.2 装饰模式 45733.3.3 适配器模式 45933.3.4 桥梁模式 46133.3.5 最佳实践 464第四部分 完美世界—设计模式混编第34章 命令模式+责任链模式 46634.1 搬移UNIX的命令 46634.2 混编小结 481第35章 工厂方法模式+策略模式 48335.1 迷你版的交易系统 48335.2 混编小结 493第36章 观察者模式+中介者模式 49536.1 事件触发器的开发 49536.2 混编小结 508第五部分 扩展篇第37章 MVC框架 51037.1 MVC框架的实现 51037.1.1 MVC的系统架构 51237.1.2 模型管理器 51837.1.3 值栈 52237.1.4 视图管理器 52237.1.5 工具类 52637.2 最佳实践 528第38章 新模式 53038.1 规格模式 53038.1.1 规格模式的实现 53038.1.2 最佳实践 54338.2 对象池模式 54638.2.1 正确的池化 54638.2.2 对象池模式的意图 54738.2.3 最佳实践 54938.3 雇工模式 54938.3.1 雇工合作 54938.3.2 雇工模式的意图 55138.3.3 最佳实践 55238.4 黑板模式 55238.4.1 黑板模式的意图 55238.4.2 黑板模式的实现方法 55338.5 空对象模式 55438.5.1 空对象模式的例子 55438.5.2 最佳实践 555附录 23种设计模式彩图

使用说明

1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读试读>

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载