《C#设计模式》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Steven John Metsker著;颜烔译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2005
  • ISBN:7508334922
  • 页数:339 页
图书介绍:本书是第一部关于C#和.NET设计模式的权威指导著作,为基于C#语言和Microsoft ? .NET框架的开发人员学习设计模式和应用设计模式提供了一个完整全面的理论框架和大量的详细应用实例。本书内容覆盖了所有23个经典的“四人小组”设计模式,具体包括:适配器,外观,合成,桥接,单件,观察者,中介者,代理,职责链,享元,生成器,工厂方法,抽象工厂,原型,备忘录,模板方法,状态,策略,命令,解释器,装饰,迭代器,以及访问者等模式。本书提供了大量的C#代码,解释说明了在.NET框架下如何应用上述设计模式。读者在阅读本书之后,将会对关于C#语言和Microsoft ? .NET框架的设计模式的整体概念、基本原理、内部实现有一个清晰的认识,并可以将设计模式应用于基于C#语言和.NET框架的面向对象软件开发实践当中。本书还提供了丰富的附录资源,有兴趣的读者可以通过利用这些资源进一步增强对设计模式的理解。

第1章 引言 1

1.1 为什么使用模式? 1

1.2 为什么使用设计模式? 2

1.3 为什么使用C#语言? 2

1.4 UML 3

1.5 本书给出的问题 3

1.6 本书的组织方式 4

1.7 欢迎来到Oozinoz公司! 5

1.8 小结 5

第1部分 接口型模式 9

第2章 接口型模式介绍 9

2.1 接口与抽象类 9

2.2 接口与委托 10

2.3 接口与属性 13

2.4 接口的细节 14

2.5 小结 14

2.6 普通接口无法提供的内容 15

第3章 适配器模式 16

3.1 对接口进行适配 16

3.2 类适配器与对象适配器 19

3.3 对.NET的数据进行适配 22

3.4 小结 25

第4章 外观模式 27

4.1 一个普通的外观 27

4.2 应用外观模式进行代码重构 29

4.3 外观、公用例程以及演示 36

4.4 小结 38

5.1 一个普通的合成 39

5.2 合成的递归行为 39

第5章 合成模式 39

5.3 合成、树形结构,以及环形结构 41

5.4 带环形结构的合成 45

5.5 环形结构产生的影响 48

5.6 小结 48

第6章 桥接模式 49

6.1 一个普通的抽象 49

6.2 从抽象到桥接 51

6.3 作为桥接的驱动器 53

6.4 数据库驱动器 53

6.5 小结 53

7.1 普通的职责 57

第2部分 职责型模式 57

第7章 职责型模式介绍 57

7.2 利用可访问性进行职责控制 58

7.3 小结 61

7.4 普通职责无法提供的内容 61

第8章 单件模式 62

8.1 单件模式的机制 62

8.2 单件与线程 63

8.3 识别单件模式 64

8.4 小结 65

第9章 观察者模式 66

9.1 C#语言对观察者的支持 66

9.2 委托机制 66

9.3 一个经典的例子——GUI中的观察者模式 69

9.4 模型/视图/控制器 75

9.5 分层 77

9.6 小结 80

第10章 中介者模式 81

10.1 一个经典实例——GUI中介者 81

10.2 关系完整性中介者 84

10.3 小结 90

第11章 代理模式 91

11.1 一个简单的代理 91

11.2 数据代理 94

11.3 远程代理 99

11.4 小结 103

12.1 一个普通的职责链模式 104

第12章 职责链模式 104

12.2 重构为职责链模式 105

12.3 将一个链进行固定 108

12.4 不带合成结构的职责链模式 109

12.5 小结 109

第13章 享元模式 111

13.1 不可改变性 111

13.2 提取一个享元中的不可改变部分 112

13.3 共享享元 113

13.4 小结 116

第3部分 构造型模式 119

第14章 构造型模式介绍 119

14.1 对象构造过程中产生的一些困难 119

14.3 普通的构造方法无法提供的内容 121

14.2 小结 121

第15章 生成器模式 123

15.1 一个普通的生成器模式 123

15.2 在约束下进行对象生成 125

15.3 一个更宽容的生成器 127

15.4 小结 128

第16章 工厂方法模式 129

16.1 一个经典实例——枚举器 129

16.2 识别工厂方法模式 131

16.3 确定对哪个类进行实例化 131

16.4 平行层次结构中的工厂方法模式 132

16.5 小结 134

17.1 一个经典实例——GUI工具箱 135

第17章 抽象工厂模式 135

17.2 抽象工厂与工厂方法 139

17.3 命名空间与抽象工厂 142

17.4 小结 142

第18章 原型模式 143

18.1 作为工厂的原型 143

18.2 利用克隆进行原型化 144

18.3 小结 145

第19章 备忘录模式 147

19.1 一个经典实例——使用备忘录完成取消操作 147

19.2 备忘录的持久性 153

19.3 跨越多次会话的永久备忘录 153

19.4 小结 155

20.1 操作与方法 159

第20章 操作型模式介绍 159

第4部分 操作型模式 159

20.2 特征标记 160

20.3 委托 161

20.4 异常 162

20.5 算法与多态 162

20.6 小结 163

20.7 普通操作无法提供的内容 164

第21章 模板方法模式 165

21.1 一个经典实例——排序 165

21.2 完成一个算法 167

21.3 模板方法的钩子 169

21.4 重构为模板方法 171

21.5 小结 172

第22章 状态模式 173

22.1 对状态进行建模 173

22.2 重构为状态模式 176

22.3 使状态成为常量 180

22.4 小结 181

第23章 策略模式 183

23.1 对策略进行建模 183

23.2 重构为策略模式 185

23.3 对策略模式和状态模式进行比较 189

23.4 对策略模式和模板方法模式进行比较 190

23.5 小结 190

第24章 命令模式 191

24.1 一个经典实例——菜单命令 191

24.2 利用命令模式提供一个服务 192

24.3 命令模式的钩子 195

24.4 命令模式与其他模式的关系 196

24.5 小结 197

第25章 解释器模式 199

25.1 一个解释器实例 199

25.2 解释器、语言以及扫描分析器 210

25.3 小结 210

第5部分 扩展型模式 213

第26章 扩展型模式介绍 213

26.1 面向对象设计的基本原则 213

26.2 Liskov替代原则 213

26.3 Demeter法则 215

26.5 普通扩展无法提供的内容 216

26.4 消除代码的气味 216

26.6 小结 217

第27章 装饰模式 219

27.1 一个经典例子——流 219

27.2 函数包装器 226

27.3 GUI中的装饰器 232

27.4 装饰模式与其他模式的关系 232

27.5 小结 232

第28章 迭代器模式 234

28.1 一般的迭代 234

28.2 线程安全的迭代 234

28.3 对一个合成进行迭代 239

28.4 小结 248

29.1 访问者机制 249

第29章 访问者模式 249

29.2 一个普通的访问者模式 250

29.3 访问者环 255

29.4 对访问者模式的争论 259

29.5 小结 260

附录A 使用指导 261

A.1 从本书获得更多的知识 261

A.2 理解经典实例 261

A.3 在代码中应用设计模式 262

A.4 坚持学习 262

附录B 答案 264

B.1 接口型模式介绍 264

B.2 适配器模式 266

B.3 外观模式 269

B.4 合成模式 271

B.5 桥接模式 273

B.6 职责型模式介绍 275

B.7 单件模式 277

B.8 观察者模式 278

B.9 中介者模式 280

B.10 代理模式 284

B.11 职责链模式 285

B.12 享元模式 288

B.13 构造型模式介绍 291

B.14 生成器模式 293

B.15 工厂方法模式 295

B.16 抽象工厂模式 299

B.17 原型模式 302

B.18 备忘录模式 304

B.19 操作型模式介绍 306

B.20 模板方法模式 307

B.21 状态模式 309

B.22 策略模式 310

B.23 命令模式 312

B.24 解释器模式 314

B.25 扩展型模式介绍 316

B.26 装饰模式 317

B.27 迭代器模式 319

B.28 访问者模式 321

C.1 获取代码与使用代码 323

C.2 构建Oozinoz系统的代码 323

附录C OOZINOZ系统的源代码 323

C.3 帮助Oozinoz代码查找相关文件 324

C.4 利用NUnit对代码进行测试 324

C.5 如何查找相关文件 325

C.6 小结 325

附录D UML概览 326

D.1 类 326

D.2 类关系 327

D.3 接口 328

D.4 委托与事件 329

D.5 对象 330

D.6 状态 331

术语表 332

参考文献 338