当前位置:主页 > 书籍配套资源 > 设计模式配套资源
《设计模式之禅》源代码

《设计模式之禅》源代码

  • 更新:2022-09-08
  • 大小:8.17 MB
  • 类别:设计模式
  • 作者:秦小波
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书写作方式新颖、语言精炼、行文幽默、阐述深刻、注重实战,注定会成为设计模式领域的里程碑之作。全书共分为五部分,第一部分全面讲述了面向对象程序设计的6大原则;第二部分深入浅出地阐述了23种设计模式,将这23种设计模式与我们耳熟能详的历史故事结合在了一起,趣味性极强;第三部分对各种彼此之间有关联的设计模式进行了分析和比较,不仅告诉读者何时应该使用何种设计模式,而且还告诉读者如何在实际开发中运用这些设计模式,这是全书的精华部分之一,是目前所有设计模式类书籍都不具备的;第四部分是全书内容的升华,讲解了设计模式的混编,深入地剖析了如何将各种设计模式结合起来使用,这也是同类书中未涉及的内容,能让读者的水平提升到一个更高的层次;第五部分是附录,对23种设计模式的定义进行了摘录和翻译,原汁原味,同时还提供了一份设计模式彩图手册,读者可以拆下来,随身携带,便于参考。

封面图

目录

  • 前言
  • 第一部分 大旗不挥,谁敢冲
  • 锋—6大设计原则全新解读
  • 第1章 单一职责原则2
  • 1.1 我是“牛”类,我可以担任多职吗2
  • 1.2 绝杀技,打破你的传统思维3
  • 1.3 我单纯,所以我快乐6
  • 1.4 最佳实践7
  • 第2章 里氏替换原则8
  • 2.1 爱恨纠葛的父子关系8
  • 2.2 纠纷不断,规则压制9
  • 2.3 最佳实践18
  • 第3章 依赖倒置原则19
  • 3.1 依赖倒置原则的定义19
  • 3.2 言而无信,你太需要契约20
  • 3.3 依赖的三种写法25
  • 3.4 最佳实践26
  • 第4章 接口隔离原则28
  • 4.1 接口隔离原则的定义28
  • 4.2 美女何其多,观点各不同29
  • 4.3 保证接口的纯洁性33
  • 4.4 最佳实践35
  • 第5章 迪米特法则36
  • 5.1 迪米特法则的定义36
  • 5.2 我的知识你知道得越少越好36
  • 5.3 最佳实践43
  • 第6章 开闭原则44
  • 6.1 开闭原则的定义44
  • 6.2 开闭原则的庐山真面目44
  • 6.3 为什么要采用开闭原则49
  • 6.4 如何使用开闭原则51
  • 6.5 最佳实践55
  • 第二部分 真刀实枪—23种
  • 设计模式完美演绎
  • 第7章 单例模式58
  • 7.1 我是皇帝我独苗58
  • 7.2 单例模式的定义59
  • 7.3 单例模式的应用60
  • 7.3.1 单例模式的优点60
  • 7.3.2 单例模式的缺点60
  • 7.3.3 单例模式的使用场景61
  • 7.3.4 单例模式的注意事项61
  • 7.4 单例模式的扩展62
  • 7.5 最佳实践64
  • 第8章 工厂方法模式65
  • 8.1 女娲造人的故事65
  • 8.2 工厂方法模式的定义69
  • 8.3 工厂方法模式的应用70
  • 8.3.1 工厂方法模式的优点70
  • 8.3.2 工厂方法模式的使用场景71
  • 8.4 工厂方法模式的扩展71
  • 8.5 最佳实践77
  • 第9章 抽象工厂模式78
  • 9.1 女娲的失误78
  • 9.2 抽象工厂模式的定义83
  • 9.3 抽象工厂模式的应用86
  • 9.3.1 抽象工厂模式的优点86
  • 9.3.2 抽象工厂模式的缺点86
  • 9.3.3 抽象工厂模式的使用场景86
  • 9.3.4 抽象工厂模式的注意事项86
  • 9.4 最佳实践87
  • 第10章 模板方法模式88
  • 10.1 辉煌工程—制造悍马88
  • 10.2 模板方法模式的定义93
  • 10.3 模板方法模式的应用94
  • 10.3.1 模板方法模式的优点94
  • 10.3.2 模板方法模式的缺点95
  • 10.3.3 模板方法模式的使用场景95
  • 10.4 模板方法模式的扩展95
  • 10.5 最佳实践99
  • 第11章 建造者模式100
  • 11.1 变化是永恒的100
  • 11.2 建造者模式的定义109
  • 11.3 建造者模式的应用111
  • 11.3.1 建造者模式的优点111
  • 11.3.2 建造者模式的使用场景111
  • 11.3.3 建造者模式的注意事项111
  • 11.4 建造者模式的扩展111
  • 11.5 最佳实践112
  • 第12章 代理模式113
  • 12.1 我是游戏至尊113
  • 12.2 代理模式的定义116
  • 12.3 代理模式的使用场景118
  • 12.3.1 代理模式的优点118
  • 12.3.2 代理模式的使用场景119
  • 12.4 代理模式的扩展119
  • 12.4.1 普通代理119
  • 12.4.2 强制代理121
  • 12.4.3 代理是有个性的126
  • 12.4.4 虚拟代理128
  • 12.4.5 动态代理128
  • 12.5 最佳实践134
  • 第13章 原型模式135
  • 13.1 个性化电子账单135
  • 13.2 原型模式的定义141
  • 13.3 原型模式的应用142
  • 13.3.1 原型模式的优点142
  • 13.3.2 原型模式的使用场景142
  • 13.4 原型模式的注意事项143
  • 13.4.1 构造函数不会被执行143
  • 13.4.2 浅拷贝和深拷贝144
  • 13.4.3 clone与final两个冤家146
  • 13.5 最佳实践146
  • 第14章 中介者模式147
  • 14.1 进销存管理是这个样子的吗147
  • 14.2 中介者模式的定义156
  • 14.3 中介者模式的应用159
  • 14.3.1 中介者模式的优点159
  • 14.3.2 中介者模式的缺点159
  • 14.3.3 中介者模式的使用场景159
  • 14.4 中介者模式的实际应用160
  • 14.5 最佳实践161
  • 第15章 命令模式162
  • 15.1 项目经理也难当162
  • 15.2 命令模式的定义170
  • 15.3 命令模式的应用173
  • 15.3.1 命令模式的优点173
  • 15.3.2 命令模式的缺点173
  • 15.3.3 命令模式的使用场景173
  • 15.4 命令模式的扩展173
  • 15.4.1 未讲完的故事173
  • 15.4.2 反悔问题174
  • 15.5 最佳实践175
  • 第16章 责任链模式178
  • 16.1 古代妇女的枷锁—
  • “三从四德”178
  • 16.2 责任链模式的定义186
  • 16.3 责任链模式的应用189
  • 16.3.1 责任链模式的优点189
  • 16.3.2 责任链模式的缺点190
  • 16.3.3 责任链模式的注意事项190
  • 16.4 最佳实践190
  • 第17章 装饰模式192
  • 17.1 罪恶的成绩单192
  • 17.2 装饰模式的定义198
  • 17.3 装饰模式应用201
  • 17.3.1 装饰模式的优点201
  • 17.3.2 装饰模式的缺点201
  • 17.3.3 装饰模式的使用场景201
  • 17.4 最佳实践201
  • 第18章 策略模式203
  • 18.1 刘备江东娶妻,赵云他容易吗203
  • 18.2 策略模式的定义206
  • 18.3 策略模式的应用208
  • 18.3.1 策略模式的优点208
  • 18.3.2 策略模式的缺点208
  • 18.3.3 策略模式的使用场景209
  • 18.3.4 策略模式的注意事项209
  • 18.4 策略模式的扩展209
  • 18.5 最佳实践214
  • 第19章 适配器模式215
  • 19.1 业务发展—上帝才能控制215
  • 19.2 适配器模式的定义221
  • 19.3 适配器模式的应用223
  • 19.3.1 适配器模式的优点223
  • 19.3.2 适配器模式的使用场景224
  • 19.3.3 适配器模式的注意事项224
  • 19.4 适配器模式的扩展224
  • 19.5 最佳实践229
  • 第20章 迭代器模式230
  • 20.1 整理项目信息—苦差事230
  • 20.2 迭代器模式的定义236
  • 20.3 迭代器模式的应用239
  • 20.4 最佳实践239
  • 第21章 组合模式240
  • 21.1 公司的人事架构是这样的吗240
  • 21.2 组合模式的定义253
  • 21.3 组合模式的应用255
  • 21.3.1 组合模式的优点255
  • 21.3.2 组合模式的缺点256
  • 21.3.3 组合模式的使用场景256
  • 21.3.4 组合模式的注意事项256
  • 21.4 组合模式的扩展256
  • 21.4.1 真实的组合模式256
  • 21.4.2 透明的组合模式257
  • 21.4.3 组合模式的遍历259
  • 21.5 最佳实践260
  • 第22章 观察者模式262
  • 22.1 韩非子身边的卧底是谁派来的262
  • 22.2 观察者模式的定义271
  • 22.3 观察者模式的应用273
  • 22.3.1 观察者模式的优点273
  • 22.3.2 观察者模式的缺点274
  • 22.3.3 观察者模式的使用场景274
  • 22.3.4 观察者模式的注意事项274
  • 22.4 观察者模式的扩展275
  • 22.4.1 Java世界中的观察者模式275
  • 22.4.2 项目中真实的观察者模式276
  • 22.4.3 订阅发布模型277
  • 22.5 最佳实践277
  • 第23章 门面模式278
  • 23.1 我要投递信件278
  • 23.2 门面模式的定义283
  • 23.3 门面模式的应用284
  • 23.3.1 门面模式的优点284
  • 23.3.2 门面模式的缺点285
  • 23.3.3 门面模式的使用场景285
  • 23.4 门面模式的注意事项285
  • 23.4.1 一个子系统可以有多个
  • 门面285
  • 23.4.2 门面不参与子系统内的
  • 业务逻辑286
  • 23.5 最佳实践288
  • 第24章 备忘录模式289
  • 24.1 如此追女孩子,你还不乐289
  • 24.2 备忘录模式的定义294
  • 24.3 备忘录模式的应用297
  • 24.3.1 备忘录模式的使用场景297
  • 24.3.2 备忘录模式的注意事项297
  • 24.4 备忘录模式的扩展297
  • 24.4.1 clone方式的备忘录297
  • 24.4.2 多状态的备忘录模式300
  • 24.4.3 多备份的备忘录304
  • 24.4.4 封装得更好一点305
  • 24.5 最佳实践307
  • 第25章 访问者模式308
  • 25.1 员工的隐私何在308
  • 25.2 访问者模式的定义316
  • 25.3 访问者模式的应用320
  • 25.3.1 访问者模式的优点320
  • 25.3.2 访问者模式的缺点320
  • 25.3.3 访问者模式的使用场景320
  • 25.4 访问者模式的扩展321
  • 25.4.1 统计功能321
  • 25.4.2 多个访问者323
  • 25.4.3 双分派326
  • 25.5 最佳实践328
  • 第26章 状态模式329
  • 26.1 城市的纵向发展功臣—电梯329
  • 26.2 状态模式的定义341
  • 26.3 状态模式的应用343
  • 26.3.1 状态模式的优点343
  • 26.3.2 状态模式的缺点344
  • 26.3.3 状态模式的使用场景344
  • 26.3.4 状态模式的注意事项344
  • 26.4 最佳实践344
  • 第27章 解释器模式346
  • 27.1 四则运算你会吗346
  • 27.2 解释器模式的定义352
  • 27.3 解释器模式的应用354
  • 27.3.1 解释器模式的优点354
  • 27.3.2 解释器模式的缺点354
  • 27.3.3 解释器模式使用的场景355
  • 27.3.4 解释器模式的注意事项355
  • 27.4 最佳实践355
  • 第28章 享元模式356
  • 28.1 内存溢出,司空见惯356
  • 28.2 享元模式的定义361
  • 28.3 享元模式的应用364
  • 28.3.1 享元模式的优点和缺点364
  • 28.3.2 享元模式的使用场景364
  • 28.4 享元模式的扩展365
  • 28.4.1 线程安全的问题365
  • 28.4.2 性能平衡366
  • 28.5 最佳实践369
  • 第29章 桥梁模式371
  • 29.1 我有一个梦想…… 371
  • 29.2 桥梁模式的定义379
  • 29.3 桥梁模式的应用381
  • 29.3.1 桥梁模式的优点381
  • 29.3.2 桥梁模式的使用场景382
  • 29.3.3 桥梁模式的注意事项382
  • 29.4 最佳实践382
  • 第三部分 谁的地盘谁做主—设计模式PK
  • 第30章 创建类模式大PK384
  • 30.1 工厂方法模式VS建造者模式384
  • 30.1.1 按工厂方法建造超人384
  • 30.1.2 按建造者模式建造超人386
  • 30.1.3 最佳实践389
  • 30.2 抽象工厂模式VS建造者模式390
  • 30.2.1 按抽象工厂模式生产车辆390
  • 30.2.2 按建造者模式生产车辆394
  • 30.2.3 最佳实践399
  • 第31章 结构类模式大PK400
  • 31.1 代理模式VS装饰模式400
  • 31.1.1 代理模式400
  • 31.1.2 装饰模式402
  • 31.1.3 最佳实践403
  • 31.2 装饰模式VS适配器模式404
  • 31.2.1 用装饰模式描述丑小鸭404
  • 31.2.2 用适配器模式实现丑小鸭407
  • 31.2.3 最佳实践410
  • 第32章 行为类模式大PK411
  • 32.1 命令模式VS策略模式411
  • 32.1.1 策略模式实现压缩算法411
  • 32.1.2 命令模式实现压缩算法414
  • 32.1.3 小结419
  • 32.2 策略模式VS状态模式420
  • 32.2.1 策略模式实现人生420
  • 32.2.2 状态模式实现人生423
  • 32.2.3 小结425
  • 32.3 观察者模式VS责任链模式426
  • 32.3.1 责任链模式实现DNS
  • 解析过程427
  • 32.3.2 触发链模式实现DNS
  • 解析过程432
  • 32.3.3 小结437
  • 第33章 跨战区PK438
  • 33.1 策略模式VS桥梁模式438
  • 33.1.1 策略模式实现邮件发送439
  • 33.1.2 桥梁模式实现邮件发送442
  • 33.1.3 最佳实践445
  • 33.2 门面模式VS中介者模式446
  • 33.2.1 中介者模式实现工资计算446
  • 33.2.2 门面模式实现工资计算451
  • 33.2.3 最佳实践454
  • 33.3 包装模式群PK455
  • 33.3.1 代理模式455
  • 33.3.2 装饰模式457
  • 33.3.3 适配器模式459
  • 33.3.4 桥梁模式461
  • 33.3.5 最佳实践464
  • 第四部分 完美世界—
  • 设计模式混编
  • 第34章 命令模式+责任链模式466
  • 34.1 搬移UNIX的命令466
  • 34.2 混编小结481
  • 第35章 工厂方法模式+策略模式483
  • 35.1 迷你版的交易系统483
  • 35.2 混编小结493
  • 第36章 观察者模式+中介者模式495
  • 36.1 事件触发器的开发495
  • 36.2 混编小结508
  • 第37章 规格模式509
  • 37.1 规格模式的实现509
  • 37.2 最佳实践521
  • 第38章 MVC框架526
  • 38.1 MVC框架的实现526
  • 38.1.1 MVC的系统架构528
  • 38.1.2 模型管理器534
  • 38.1.3 值栈538
  • 38.1.4 视图管理器538
  • 38.1.5 工具类542
  • 38.2 最佳实践544
  • 附录:23种设计模式彩图

资源下载

资源下载地址1:https://pan.baidu.com/s/1RXM6sM1fYbf1P7L87Mmrgw

相关资源

网友留言