《C#设计模式》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘伟主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302314806
  • 页数:400 页
图书介绍:本书使用C#语言详细讲解了GoF设计模式。全书共分为26章,内容包括设计模式概述、面向对象设计原则、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式、职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。

第1章 设计模式概述 1

1.1 设计模式的诞生与发展 1

1.1.1 模式的诞生与定义 1

1.1.2 软件模式概述 3

1.1.3 设计模式的发展 3

1.2 设计模式的定义与分类 4

1.2.1 设计模式的定义 4

1.2.2 设计模式的基本要素 5

1.2.3 设计模式的分类 6

1.3 GoF设计模式简介 7

1.4 设计模式的优点 9

1.5 本章小结 9

1.6 习题 10

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

2.1 面向对象设计原则概述 11

2.2 单一职责原则 12

2.3 开闭原则 13

2.4 里氏代换原则 14

2.5 依赖倒转原则 15

2.6 接口隔离原则 17

2.7 合成复用原则 18

2.8 迪米特法则 20

2.9 本章小结 22

2.10 习题 23

第3章 简单工厂模式 25

3.1 创建型模式 25

3.2 简单工厂模式概述 26

3.3 简单工厂模式的结构与实现 27

3.3.1 简单工厂模式的结构 27

3.3.2 简单工厂模式的实现 28

3.4 简单工厂模式的应用实例 29

3.5 创建对象与使用对象 34

3.6 简单工厂模式的简化 36

3.7 简单工厂模式的优缺点与适用环境 37

3.7.1 简单工厂模式的优点 37

3.7.2 简单工厂模式的缺点 37

3.7.3 简单工厂模式的适用环境 37

3.8 本章小结 38

3.9 习题 38

第4章 工厂方法模式 40

4.1 工厂方法模式概述 40

4.2 工厂方法模式的结构与实现 41

4.2.1 工厂方法模式的结构 41

4.2.2 工厂方法模式的实现 42

4.3 工厂方法模式的应用实例 43

4.4 配置文件与反射 46

4.5 工厂方法的重载 48

4.6 工厂方法的隐藏 49

4.7 工厂方法模式的优缺点与适用环境 51

4.7.1 工厂方法模式的优点 51

4.7.2 工厂方法模式的缺点 51

4.7.3 工厂方法模式的适用环境 52

4.8 本章小结 52

4.9 习题 52

第5章 抽象工厂模式 54

5.1 产品等级结构与产品族 54

5.2 抽象工厂模式概述 55

5.3 抽象工厂模式的结构与实现 56

5.3.1 抽象工厂模式的结构 56

5.3.2 抽象工厂模式的实现 56

5.4 抽象工厂模式的应用实例 58

5.5 开闭原则的倾斜性 64

5.6 抽象工厂模式的优缺点与适用环境 65

5.6.1 抽象工厂模式的优点 65

5.6.2 抽象工厂模式的缺点 65

5.6.3 抽象工厂模式的适用环境 66

5.7 本章小结 66

5.8 习题 67

第6章 建造者模式 69

6.1 建造者模式概述 69

6.2 建造者模式的结构与实现 70

6.2.1 建造者模式的结构 70

6.2.2 建造者模式的实现 71

6.3 建造者模式的应用实例 74

6.4 指挥者类的深入讨论 80

6.5 建造者模式的优缺点与适用环境 83

6.5.1 建造者模式的优点 84

6.5.2 建造者模式的缺点 84

6.5.3 建造者模式的适用环境 84

6.6 本章小结 84

6.7 习题 85

第7章 原型模式 86

7.1 原型模式概述 86

7.2 原型模式的结构与实现 87

7.2.1 原型模式的结构 87

7.2.2 浅克隆与深克隆 88

7.2.3 原型模式的实现 89

7.3 原型模式的应用实例 92

7.4 原型管理器 96

7.5 原型模式的优缺点与适用环境 97

7.5.1 原型模式的优点 97

7.5.2 原型模式的缺点 97

7.5.3 原型模式的适用环境 97

7.6 本章小结 98

7.7 习题 98

第8章 单例模式 100

8.1 单例模式概述 100

8.2 单例模式的结构与实现 101

8.2.1 单例模式的结构 101

8.2.2 单例模式的实现 102

8.3 单例模式的应用实例 103

8.4 饿汉式单例与懒汉式单例 106

8.5 单例模式的优缺点与适用环境 108

8.5.1 单例模式的优点 108

8.5.2 单例模式的缺点 109

8.5.3 单例模式的适用环境 109

8.6 本章小结 109

8.7 习题 109

第9章 适配器模式 111

9.1 结构型模式 111

9.2 适配器模式概述 112

9.3 适配器模式的结构与实现 113

9.3.1 适配器模式的结构 113

9.3.2 适配器模式的实现 114

9.4 适配器模式的应用实例 115

9.5 缺省适配器模式 120

9.6 双向适配器 121

9.7 适配器模式的优缺点与适用环境 122

9.7.1 适配器模式的优点 122

9.7.2 适配器模式的缺点 123

9.7.3 适配器模式的适用环境 123

9.8 本章小结 123

9.9 习题 124

第10章 桥接模式 126

10.1 桥接模式概述 126

10.2 桥接模式的结构与实现 127

10.2.1 桥接模式的结构 127

10.2.2 桥接模式的实现 128

10.3 桥接模式的应用实例 130

10.4 桥接模式与适配器模式联用 136

10.5 桥接模式的优缺点与适用环境 136

10.5.1 桥接模式的优点 137

10.5.2 桥接模式的缺点 137

10.5.3 桥接模式的适用环境 137

10.6 本章小结 137

10.7 习题 138

第11章 组合模式 140

11.1 组合模式概述 140

11.2 组合模式的结构与实现 141

11.2.1 组合模式的结构 141

11.2.2 组合模式的实现 142

11.3 组合模式的应用实例 144

11.4 透明组合模式与安全组合模式 150

11.5 组合模式的优缺点与适用环境 151

11.5.1 组合模式的优点 151

11.5.2 组合模式的缺点 151

11.5.3 组合模式的适用环境 152

11.6 本章小结 152

11.7 习题 152

第12章 装饰模式 154

12.1 装饰模式概述 154

12.2 装饰模式的结构与实现 155

12.2.1 装饰模式的结构 155

12.2.2 装饰模式的实现 156

12.3 装饰模式的应用实例 158

12.4 透明装饰模式与半透明装饰模式 162

12.5 装饰模式的优缺点与适用环境 164

12.5.1 装饰模式的优点 164

12.5.2 装饰模式的缺点 165

12.5.3 装饰模式的适用环境 165

12.6 本章小结 165

12.7 习题 166

第13章 外观模式 168

13.1 外观模式概述 168

13.2 外观模式的结构与实现 170

13.2.1 外观模式的结构 170

13.2.2 外观模式的实现 170

13.3 外观模式的应用实例 171

13.4 抽象外观类 175

13.5 外观模式的优缺点与适用环境 179

13.5.1 外观模式的优点 179

13.5.2 外观模式的缺点 179

13.5.3 外观模式的适用环境 179

13.6 本章小结 180

13.7 习题 180

第14章 享元模式 182

14.1 享元模式概述 182

14.2 享元模式的结构与实现 183

14.2.1 享元模式的结构 183

14.2.2 享元模式的实现 184

14.3 享元模式的应用实例 186

14.4 有外部状态的享元模式 190

14.5 单纯享元模式和复合享元模式 192

14.6 享元模式的优缺点与适用环境 193

14.6.1 享元模式的优点 193

14.6.2 享元模式的缺点 194

14.6.3 享元模式的适用环境 194

14.7 本章小结 194

14.8 习题 195

第15章 代理模式 196

15.1 代理模式概述 196

15.2 代理模式的结构与实现 197

15.2.1 代理模式的结构 197

15.2.2 代理模式的实现 198

15.3 代理模式的应用实例 199

15.4 远程代理 204

15.5 虚拟代理 204

15.6 缓冲代理 205

15.7 代理模式的优缺点与适用环境 207

15.7.1 代理模式的优点 207

15.7.2 代理模式的缺点 207

15.7.3 代理模式的适用环境 207

15.8 本章小结 208

15.9 习题 208

第16章 职责链模式 210

16.1 行为型模式 210

16.2 职责链模式概述 212

16.3 职责链模式的结构与实现 213

16.3.1 职责链模式的结构 213

16.3.2 职责链模式的实现 213

16.4 职责链模式的应用实例 215

16.5 纯与不纯的职责链模式 221

16.6 职责链模式的优缺点与适用环境 222

16.6.1 职责链模式的优点 222

16.6.2 职责链模式的缺点 222

16.6.3 职责链模式的适用环境 222

16.7 本章小结 223

16.8 习题 223

第17章 命令模式 225

17.1 命令模式概述 225

17.2 命令模式的结构与实现 226

17.2.1 命令模式的结构 226

17.2.2 命令模式的实现 227

17.3 命令模式的应用实例 228

17.4 实现命令队列 233

17.5 记录请求日志 234

17.6 实现撤销操作 235

17.7 宏命令 238

17.8 命令模式的优缺点与适用环境 238

17.8.1 命令模式的优点 239

17.8.2 命令模式的缺点 239

17.8.3 命令模式的适用环境 239

17.9 本章小结 239

17.10 习题 240

第18章 解释器模式 242

18.1 解释器模式概述 242

18.2 文法规则和抽象语法树 243

18.3 解释器模式的结构与实现 244

18.3.1 解释器模式的结构 244

18.3.2 解释器模式的实现 245

18.4 解释器模式的应用实例 247

18.5 解释器模式的优缺点与适用环境 253

18.5.1 解释器模式的优点 253

18.5.2 解释器模式的缺点 254

18.5.3 解释器模式的适用环境 254

18.6 本章小结 254

18.7 习题 255

第19章 迭代器模式 256

19.1 迭代器模式概述 256

19.2 迭代器模式的结构与实现 257

19.2.1 迭代器模式的结构 257

19.2.2 迭代器模式的实现 258

19.3 迭代器模式的应用实例 260

19.4 使用内部类实现迭代器 265

19.5 .NET内置迭代器 267

19.6 迭代器模式的优缺点与适用环境 269

19.6.1 迭代器模式的优点 270

19.6.2 迭代器模式的缺点 270

19.6.3 迭代器模式的适用环境 270

19.7 本章小结 270

19.8 习题 271

第20章 中介者模式 272

20.1 中介者模式概述 272

20.2 中介者模式的结构与实现 274

20.2.1 中介者模式的结构 274

20.2.2 中介者模式的实现 275

20.3 中介者模式的应用实例 277

20.4 扩展中介者与同事类 282

20.5 中介者模式的优缺点与适用环境 286

20.5.1 中介者模式的优点 287

20.5.2 中介者模式的缺点 287

20.5.3 中介者模式的适用环境 287

20.6 本章小结 287

20.7 习题 288

第21章 备忘录模式 289

21.1 备忘录模式概述 289

21.2 备忘录模式的结构与实现 290

21.2.1 备忘录模式的结构 290

21.2.2 备忘录模式的实现 291

21.3 备忘录模式的应用实例 294

21.4 实现多次撤销 298

21.5 备忘录模式的优缺点与适用环境 301

21.5.1 备忘录模式的优点 301

21.5.2 备忘录模式的缺点 301

21.5.3 备忘录模式的适用环境 301

21.6 本章小结 302

21.7 习题 302

第22章 观察者模式 304

22.1 观察者模式概述 304

22.2 观察者模式的结构与实现 305

22.2.1 观察者模式的结构 305

22.2.2 观察者模式的实现 306

22.3 观察者模式的应用实例 308

22.4 观察者模式与.NET中的委托事件模型 313

22.5 观察者模式与MVC 315

22.6 观察者模式的优缺点与适用环境 316

22.6.1 观察者模式的优点 316

22.6.2 观察者模式的缺点 316

22.6.3 观察者模式的适用环境 317

22.7 本章小结 317

22.8 习题 318

第23章 状态模式 319

23.1 状态模式概述 319

23.2 状态模式的结构与实现 320

23.2.1 状态模式的结构 320

23.2.2 状态模式的实现 321

23.3 状态模式的应用实例 323

23.4 共享状态 330

23.5 使用环境类实现状态的转换 333

23.6 状态模式的优缺点与适用环境 337

23.6.1 状态模式的优点 337

23.6.2 状态模式的缺点 337

23.6.3 状态模式的适用环境 337

23.7 本章小结 337

23.8 习题 338

第24章 策略模式 341

24.1 策略模式概述 341

24.2 策略模式的结构与实现 342

24.2.1 策略模式的结构 342

24.2.2 策略模式的实现 343

24.3 策略模式的应用实例 344

24.4 PetShop 4.0中的订单处理 348

24.5 策略模式的优缺点与适用环境 349

24.5.1 策略模式的优点 349

24.5.2 策略模式的缺点 349

24.5.3 策略模式的适用环境 350

24.6 本章小结 350

24.7 习题 350

第25章 模板方法模式 352

25.1 模板方法模式概述 352

25.2 模板方法模式的结构与实现 353

25.2.1 模板方法模式的结构 353

25.2.2 模板方法模式的实现 354

25.3 模板方法模式的应用实例 356

25.4 钩子方法的使用 360

25.5 模板方法模式的优缺点与适用环境 363

25.5.1 模板方法模式的优点 363

25.5.2 模板方法模式的缺点 363

25.5.3 模板方法模式的适用环境 363

25.6 本章小结 363

25.7 习题 364

第26章 访问者模式 366

26.1 访问者模式概述 366

26.2 访问者模式的结构与实现 368

26.2.1 访问者模式的结构 368

26.2.2 访问者模式的实现 369

26.3 访问者模式的应用实例 371

26.4 访问者模式与组合模式联用 378

26.5 访问者模式的优缺点与适用环境 379

26.5.1 访问者模式的优点 379

26.5.2 访问者模式的缺点 380

26.5.3 访问者模式的适用环境 380

26.6 本章小结 380

26.7 习题 381

附录A UML类图 382

A.1 UML概述 382

A.2 类与类的UML表示 383

A.3 类之间的关系 385

附录B 设计模式模拟试题 393

B.1 模拟试题一 393

B.2 模拟试题二 396

参考文献 400