《漫谈设计模式 从面向对象开始》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:刘济华编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302273028
  • 页数:279 页
图书介绍:本书主要从最基本的设计模式入手,并结合一些J2EE开发过程经常遇见的技术和概念,你将全面理解这10多个设计模式,并在开发过程中,让你真正体会和思考面向对象编程的思想,也只有掌握这些,你才会能成为一位真正的设计专家。

第一篇 模式介绍 3

第1章 谈面向对象和模式 3

1.1什么是对象 4

1.2面向对象的好处 5

1.3重用 6

1.4模式简史 7

1.5什么是模式 8

1.6学习设计模式的一些常见问题 11

1.7本章关键词 13

第2章 第1个模式——模板方法(Template Method)模式 15

2.1从回家过年说起 16

2.1.1 DRY (Don’t Repeat Yourself) 18

2.1.2变化+重复,如何维护 20

2.2模板方法(Template Method)模式 21

2.2.1使用继承 21

2.2.2模板方法模式 24

2.3引入回调(Callback) 26

2.4总结 30

2.5本章关键词 30

第二篇 创建对象 33

第3章 单例(Singleton)模式 33

3.1最简单的单例 34

3.2进阶 35

3.2.1延迟创建 35

3.2.2线程安全 36

3.2.3 Double-Check Locking 37

3.2.4 Initialization on demand holder 39

3.2.5 Singleton的序列化 40

3.3总结 41

3.4本章关键词 42

第4章 工厂方法(Factory Method)模式 43

4.1工厂方法模式 44

4.1.1类图 44

4.1.2创建数据库连接对象 47

4.2静态工厂方法 52

4.3总结 53

4.4本章关键词 54

第5章 原型(Prototype)模式 55

5.1原型模式 56

5.2寄个快递 57

5.3实现 57

5.3.1 UML静态类图 57

5.3.2代码实现 58

5.4深拷贝(Deep Copy) 61

5.5总结 65

5.6本章关键词 65

第6章 控制反转(l oC) 67

6.1从创建对象谈起 68

6.2使用工厂方法模式的问题 70

6.3 Inversion of Control(控制反转) 71

6.3.1 IoC和DI(Dependency Injection,依赖注入) 72

6.3.2 Service Locator(服务定位器) 73

6.3.3 Dependency Injection 76

6.4总结 91

6.5本章关键词 92

第三篇 构建复杂结构 95

第7章 装饰器(Decorator)模式 95

7.1记录历史修改 96

7.2 Open-Closed Principle(开放一封闭原则,OCP) 99

7.3装饰器(Decorator)模式 101

7.3.1类图 101

7.3.2实现 101

7.3.3一点变化 107

7.3.4如何使用 108

7.3.5测试 108

7.4装饰器模式的优缺点 110

7.5总结 111

7.6本章关键词 111

第8章 代理(Proxy)模式 113

8.1代理(Proxy)模式 114

8.1.1类图 114

8.1.2访问分布式对象 114

8.2 J2SE动态代理 122

8.2.1类和接口 122

8.2.2调用原理 124

8.2.3实现同步 125

8.2.4总结 131

8.3和装饰器(Decorator)模式的比较 131

8.4总结 132

8.5本章关键词 132

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

9.1打桩 134

9.2其他适配器模式 137

9.2.1类适配器 137

9.2.2双向适配器 138

9.3测试 139

9.4和代理(Proxy)模式的比较 141

9.5总结 141

9.6本章关键词 142

第10章 外观(Facade)模式 143

10.1外观(Facade)模式 144

10.2 Least Knowledge Principle(最少知识原则) 144

10.3懒惰的老板请客 145

10.4 EJB里的外观模式 148

10.5总结 150

10.6本章关键词 150

第11章 组合(Composite)模式 151

11.1组合模式概述 152

11.1.1类图 152

11.1.2使用组合(Composite)模式 153

11.1.3测试 156

11.2透明的组合模式 159

11.3安全的组合模式VS透明的组合模式 162

11.4还需要注意什么 162

11.5总结 163

11.6本章关键词 163

第四篇 行为模式 167

第12章 策略(Strategy)模式 167

12.1既要坐飞机又要坐大巴 168

12.2封装变化 169

12.3策略模式 172

12.4还需要继承吗 173

12.5优先使用合成而非继承 175

12.6总结 176

12.7本章关键词 177

第13章 状态(State)模式 179

13.1电子颜料板 180

13.2 switch-case实现 180

13.3如何封装变化 181

13.4状态模式 186

13.5使用Enum类型 186

13.6与策略(Strategy)模式的比较 191

13.7总结 191

13.8本章关键词 192

第14章 观察者(Observer)模式 193

14.1股票价格变了多少 194

14.2观察者模式 194

14.2.1如何实现 194

14.2.2观察者模式 201

14.2.3 Java标准库的观察者模式 201

14.3总结 208

14.4本章关键词 208

第五篇 终点还是起点 211

第15章 面向切面的编程(AOP) 211

15.1记录时间 212

15.2 AOP(Aspect-OrientedProgramming) 215

15.2.1一些重要概念 216

15.2.2 OOP实现横切 217

15.2.3 AOP实现技术 218

15.3 AOP框架介绍 244

15.4 AOP联盟(AOP Alliance) 245

15.5使用AOP编程的风险 245

15.6 OOP还是AOP 246

15.7总结 247

15.8本章关键词 248

第16章 面向对象开发 249

16.1写在面向对象设计之前 250

16.2汲取知识 251

16.3横看成岭侧成峰 253

16.4提炼模型 254

16.5应用设计模式 259

16.6不能脱离实现技术 259

16.7重构 260

16.8过度的开发(Over-engineering) 262

16.9总结 263

16.10本章关键词 264

第17章 结语 265

17.1感悟 266

17.2面向对象的开发范式 266

17.3一些原则 268

17.4写在模式之后 269

17.5本章关键词 269

附录 推荐阅读资源 271

1 Java语言相关学习图书 272

2 J2EE技术相关图书 273

3面向对象设计相关图书 273

4给Agile(敏捷)开发人员推荐的书籍 275

5网站和论坛 275

参考文献 277