《设计模式从入门到精通》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:杨帆,王钧玉,孙更新编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121115608
  • 页数:524 页
图书介绍:本书使用Java语言来描述经典的GoF23设计模式,书中使用了JDK 6.0中的新特性,采用案例驱动的形式,由一套完整的超市系统贯穿全书。通过案例驱动的形式,可以使读者能够将各种设计模式真正运用到实际开发中,避免了理论与实践脱节的问题。本书以实例、项目工程的实现为主线,以应用为目的,循序渐进地讲解设计模式的具体应用,易学易用,适用于没有或者对设计模式了解较少初学者,可以快速帮他们提升初学者的编程能力。

第1章 设计模式初见 1

1.1 一切从某个小超市开始 1

1.2 为何使用设计模式 1

1.3 设计模式分类 2

1.4 阅读建议与学习资源 3

第2章 面向对象设计原则 4

2.1 软件的维护代价 4

2.2 面向对象设计原则 4

2.2.1 基础原则:“开一闭”原则(OCP) 4

2.2.2 单一职责原则(SRP) 7

2.2.3 里氏替换原则(LSP) 10

2.2.4 依赖倒置原则(DIP) 12

2.2.5 接口隔离原则(ISP) 13

2.3 Java面向对象的支持 14

第3章 统一建模语言UML概述 15

3.1 UML发展史 15

3.2 UML中的关系 17

3.2.1 依赖关系 17

3.2.2 继承关系 17

3.2.3 实现关系 17

3.2.4 关联关系 18

3.2.5 聚合关系 18

3.2.6 组合关系 18

3.3 UML中的图形类型 19

3.4 UML工具软件 19

第4章 工厂方法模式(FactoryMethod) 21

4.1 商品上架遇到的问题 21

4.2 工厂方法模式的结构 24

4.2.1 简单工厂模式 24

4.2.2 工厂方法模式 29

4.2.3 使用工厂方法模式解决商品上架问题 33

4.2.4 工厂模式在JDK中的实例 42

4.2.5 工厂方法模式的使用范围 44

4.2.6 简单工厂与其他模式的区别 44

4.3 工厂方法模式总结 44

第5章 抽象工厂模式(Abstract Factory) 45

5.1 深入探讨商品上架遇到的问题 46

5.2 抽象工厂模式的结构 51

5.2.1 抽象工厂模式 51

5.2.2 使用抽象工厂模式解决商品上架问题 58

5.2.3 抽象工厂模式在JDK中的实例 66

5.2.4 抽象工厂模式的使用范围 71

5.2.5 与其他模式的关系 71

5.3 抽象工厂模式总结 72

第6章 建造者模式(Builder Factory) 73

6.1 商品捆绑销售的问题 73

6.2 建造者模式的结构 76

6.2.1 建造者模式 76

6.2.2 使用建造者模式解决捆绑销售问题 83

6.2.3 建造者模式的实际使用案例 92

6.2.4 建造者模式的使用范围 92

6.2.5 与其他模式的关系 93

6.3 建造者模式总结 93

第7章 原型模式(Prototype) 94

7.1 新连锁店开张 94

7.2 原型模式的结构 97

7.2.1 原型模式 97

7.2.2 浅克隆与深克隆 102

7.2.3 使用原型模式解决连锁店问题 109

7.2.4 原型模式在JDK中的应用实例 116

7.2.5 原型模式的使用范围 116

7.2.6 与其他模式的关系 117

7.3 原型模式总结 117

第8章 单例模式(Singleton) 118

8.1 连锁店总店的唯一性问题 118

8.2 单例模式的结构 120

8.2.1 单例模式 120

8.2.2 多线程情况下的单例模式 122

8.2.3 单例模式的双重检查模式DCL 126

8.2.4 使用单例模式解决连锁店总店的问题 129

8.2.5 单例模式在JDK中的实例 137

8.2.6 单例模式的使用范围 140

8.2.7 与其他模式的关系 140

8.3 单例模式总结 141

第9章 适配器模式(Adapter) 142

9.1 家电区的麻烦 142

9.2 适配器的结构 143

9.2.1 类适配器 143

9.2.2 对象适配器 144

9.2.3 两种适配器的对比 145

9.2.4 用适配器模式解决电源插头问题 146

9.2.5 双向适配器 149

9.2.6 适配器模式在JDK中的实例 150

9.2.7 适配器的适用范围 155

9.2.8 与其他模式的关系 155

9.3 适配器模式总结 156

第10章 桥接模式(Bridge) 157

10.1 游戏机销售专柜引发的思考 157

10.2 桥接模式的结构 158

10.2.1 桥接模式 158

10.2.2 使用桥接模式解决游戏机销售的问题 163

10.2.3 桥接模式在JDK中的实例 168

10.2.4 桥接模式的使用范围 171

10.2.5 与其他模式的关系 171

10.3 桥接模式总结 171

第12章 代理模式(Proxy) 172

11.1 手机柜台遇到的问题 172

11.2 代理模式的结构 173

11.2.1 代理模式 173

11.2.2 使用代理模式解决手机展示过程中的问题 177

11.2.3 几种不同的代理模式 186

11.2.4 代理模式的使用范围 192

11.2.5 与其他模式的关系 193

11.3 代理模式总结 193

第12章 外观模式(Facade) 194

12.1 顾客的意见——购买大件商品时手续繁多 194

12.2 外观模式的结构 195

12.2.1 外观模式 195

12.2.2 使用外观模式解决顾客的一站式服务 201

12.2.3 外观模式在JDK中的实例 206

12.2.4 外观模式的使用范围及优点 209

12.2.5 与其他模式的关系 210

12.3 外观模式总结 210

第13章 装饰模式(Decorator) 212

13.1 如何解决销售人员的能力固化问题 212

13.2 装饰模式的结构 213

13.2.1 装饰模式 213

13.2.2 使用装饰模式解决销售人员问题 217

13.2.3 装饰模式在JDK中的实例 223

13.2.4 装饰模式的使用范围 224

13.2.5 与其他模式的关系 225

13.3 装饰模式总结 226

第14章 组合模式(Composite) 227

14.1 如何描述超市的组织结构 227

14.2 组合模式的结构 229

14.2.1 组合模式 229

14.2.2 使用桥接模式解决超市组织结构问题 236

14.2.3 组合模式在JDK中的实例 244

14.2.4 组合模式的使用范围 248

14.2.5 与其他模式的关系 248

14.3 组合模式总结 248

第15章 享元模式(Flyweight) 249

15.1 宣传海报设计过程中的思考 249

15.2 享元模式的结构 250

15.2.1 单纯享元模式 250

15.2.2 复合享元模式 255

15.2.3 使用享元模式解决宣传海报的设计问题 260

15.2.4 享元模式在JDK中的实例 272

15.2.5 享元模式的使用范围 274

15.2.6 与其他模式的关系 274

15.3 享元模式总结 275

第16章 命令模式(Command) 276

16.1 连锁店客服专线的问题 276

16.2 命令模式的结构 279

16.2.1 命令模式 279

16.2.2 使用命令模式解决客服电话的问题 289

16.2.3 命令模式在JDK中的实例 297

16.2.4 命令模式的使用范围 298

16.2.5 与其他模式的关系 299

16.3 命令模式总结 299

第17章 观察者模式(Observer) 300

17.1 连锁店宣传资料的发放问题 300

17.2 观察者模式的结构 304

17.2.1 观察者模式 305

17.2.2 使用观察者模式构建发布/订阅模型 309

17.2.3 观察者模式在JDK中的实例 316

17.2.4 观察者模式的使用范围 321

17.2.5 与其他模式的关系 322

17.3 观察者模式总结 323

第18章 责任链模式(Chain of Responsibility) 324

18.1 商品进货审批中的问题 324

18.2 责任链模式的结构 328

18.2.1 责任链模式 328

18.2.2 纯的和不纯的责任链模式 332

18.2.3 用责任链模式建立明晰的进货审批流程 332

18.2.4 责任链模式在JDK中的实例 338

18.2.5 责任链模式的使用范围 342

18.2.6 与其他模式的关系 343

18.3 责任链模式总结 343

第19章 迭代器模式(Iterator) 344

19.1 收银员的商品处理效率亟待提高 344

19.2 迭代器模式的结构 350

19.2.1 迭代器模式 350

19.2.2 用迭代器模式统一处理各类商品 354

19.2.3 迭代器模式在JDK中的实例 362

19.2.4 迭代器模式的使用范围及优点 365

19.2.5 与其他模式的关系 365

19.3 外观模式总结 365

第20章 访问者模式(Visitor) 366

20.1 再谈收银员的效率问题 366

20.2 访问者模式的结构 369

20.2.1 静态、动态、单分派、多分派、双重分派 369

20.2.2 访问者模式 374

20.2.3 用访问者模式设计灵活高效的收银程序 381

20.2.4 访问者模式在JDK中的实例 387

20.2.5 访问者模式的使用范围及优点 388

20.2.6 与其他模式的关系 389

20.3 访问者模式总结 389

第21章 状态模式(State) 390

21.1 如何调整超市的运营状态 390

21.2 状态模式的结构 393

21.2.1 状态模式 393

21.2.2 用状态模式设计超市在不同时段的打折状态 403

21.2.3 状态模式的使用范围及优点 408

21.2.4 与其他模式的关系 408

21.3 状态模式总结 408

第22章 备忘录模式(Memento) 409

22.1 服务器硬盘坏了,营业数据全丢了 409

22.2 备忘录模式的结构 411

22.2.1 备忘录模式白箱实现 412

22.2.2 备忘录模式黑箱实现 415

22.2.3 用备忘录模式设计可靠的数据保存系统 421

22.2.4 备忘录模式在JDK中的实例 431

22.2.5 备忘录模式的特点 432

22.2.6 与其他模式的关系 433

22.3 备忘录模式总结 433

第23章 策略模式(Strategy) 434

23.1 最常用的促销手段——打折 434

23.2 策略模式的结构 437

23.2.1 策略模式 437

23.2.2 用策略模式构建灵活的打折方式 447

23.2.3 策略模式在JDK中的实例 459

23.2.4 策略模式的使用范围及优点 460

23.2.5 与其他模式的关系 461

23.3 策略模式总结 461

第24章 调停者模式(Mediator) 462

24.1 超市经营的核心——库存管理 462

24.2 调停者模式的结构 469

24.2.1 调停者模式 469

24.2.2 用调停者模式协调进货/销售/盘点之间的关系 475

24.2.3 调停者模式在JDK中的实例 481

24.2.4 调停者模式的适用范围及优缺点 482

24.2.5 与其他模式的关系 482

24.3 调停者模式总结 482

第25章 模板方法模式(Template Method) 483

25.1 超市面包房的糕点制作流程规范化问题 483

25.2 模板方法模式的结构 487

25.2.1 模板方法模式 487

25.2.2 用模板方法模式设计不同糕点的制作流程 491

25.2.3 模板方法模式在JDK中的实例 497

25.2.4 模板方法模式的使用范围及优点 499

25.2.5 与其他模式的关系 500

25.3 模板方法模式总结 500

第26章 解释器模式(Interpreter) 501

26.1 新店开在了外国人聚居区 501

26.2 解释器模式的结构 504

26.2.1 解释器模式 504

26.2.2 用解释器模式设计超市内的多语言指示牌 510

26.2.3 解释器模式在JDK中的实例 516

26.2.4 解释器模式的使用范围及优点 517

26.2.5 与其他模式的关系 517

26.3 解释器模式总结 518

第27章 设计模式总结 519

27.1 回顾设计模式在超市发展中的足迹 519

27.2 各模式之间的关系及演变图 521

27.3 新的知识新的起点 522

27.3.1 Java EE设计模式 522

27.3.2 架构风格模式 523

27.3.3 架构模式 523

27.3.4 分层架构模式 524

27.4 学习建议 524