《软件设计精要与模式》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张逸著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121039966
  • 页数:428 页
图书介绍:本书关注的焦点是软件设计,涵盖了大部分与设计有关的基本要素,包括面向对象编程思想、设计模式、重构、测试驱动开发、极限编程以及软件体系架构设计。其中,尤以设计模式为主,深入探讨了软件设计过程中的原则与模式,并结合大量的实例与代码演示了如何合理运用设计模式,改善程序模块的可复用性、可扩展性,实现模块间的松散耦合。全书将软件设计理论与项目实践完美地结合起来,使其告别了纯理论研究的空泛,具有现实的指导意义。本书共分为5篇,包括:设计之要、.NET Framework与设计模式、媒体播放器的设计之旅、设计模式应用实践以及.NET体系架构设计。本书力求讲解浅显明白。在技术探讨上,尽可能地深入透彻;在每一字的描述上,尽可能地简单易懂。本书适用于所有希望提高软件设计水平的程序员、软件工程师,同时,对于软件设计师与系统架构师也具有一定的参考价值。

第1篇 设计之要 2

第1章 设计之道 2

1.1 计划的设计与演进的设计 2

1.2 架构设计的标准 4

1.3 过度设计,还是简单设计 6

1.4 需要设计模式吗 8

1.5 重构是必然的 9

1.6 UML重要吗 10

1.7 测试驱动开发 11

第2章 封装变化 13

2.1 设计模式之鹄的 13

2.2 如何封装变化 14

2.2.1 封装用户请求的变化 14

2.2.2 封装对象创建的变化 17

2.2.3 封装算法实现的变化 21

2.3 依赖注入 26

第3章 体验重构 28

3.1 一个阶乘容器 29

3.2 代码的坏味道 30

3.3 需求发生变化 31

3.4 运用重构利器 32

3.5 引入设计模式 35

第4章 测试驱动开发实践 39

4.1 发现价值与生产价值 40

4.2 在测试驱动开发过程中运用面向对象编程思想 44

4.3 适时小结 50

4.4 收获价值 50

4.5 无上之力 51

第5章 设计,由你掌握 53

5.1 从需求开始 54

5.2 需求改变了 56

5.3 如果不熟悉设计模式 56

5.4 山穷水尽疑无路 60

5.5 柳暗花明又一村 62

5.6 尽善尽美的结局 69

第2篇 NET Framework与设计模式第6章 Factory Method模式 74

6.1 “嫁祸江东”之计 74

6.2 WebRequest对象的创建 78

6.3 具体对象创建的彻底解耦 80

第7章 Composite模式 89

7.1 一个字处理软件的实例 89

7.2 NET Framework中的控件 95

7.3 “复合方式”的Composite模式 98

第8章 Decorator模式 107

8.1 一步一步走向Decorator模式 107

8.2 NET Framework中流的处理 117

第9章 Iterator模式 122

9.1 学会分辨对象的职责 122

9.2 Iterator模式大观园 127

9.3 Iterator模式在NET Framework中的实现 128

9.4 透晓foreach语句的实质 132

第10章 Strategy模式 136

10.1 一个税务系统实例 136

10.2 NET Framework中的Provider对象 138

10.3 NET Framework中的配置节管理 142

第3篇 媒体播放器的设计之旅第11章 面向对象设计与Factory Method模式 146

11.1 拙劣的设计意味着噩梦的产生 146

11.2 走向面向对象设计之路 148

11.3 接口分离 153

11.4 引入Factory Method模式 157

11.5 飞翔的翅膀 161

第12章 探讨Adapter模式 164

12.1 设计走向死胡同 164

12.2 引入Adapter模式 165

12.3 类的Adapter模式 165

12.4 对象的Adapter模式 169

第13章 从Adapter模式到Decorator模式 176

13.1 考察对象的Adapter模式 176

13.2 引入Decorator模式 181

13.3 正宗的Decorator模式 184

第14章 Visitor模式探索 188

14.1 Visitor模式是否可行 188

14.2 实现Visitor模式 189

14.3 改进后的Visitor模式 195

14.4 合理运用Visitor模式 200

第15章 再谈Adapter模式 202

15.1 新的应用场景 202

15.2 “狼”与“羊”的关系 203

15.3 引入Adapter模式 206

第4篇 设计模式应用实践 214

第16章 Abstract Factory模式应用实践 214

16.1 需求分析——报表组件 214

16.2 糟糕的设计 215

16.3 引入Abstract Factory模式 217

16.4 工厂对象的使用 220

16.5 引入Adapter模式扩展Abstract Factory结构 222

16.6 接口还是抽象类 223

第17章 Builder模式应用实践 227

17.1 需求分析——装配设备对象 227

17.2 糟糕的设计 230

17.3 引入Builder模式 233

17.4 从容应对扩展 237

第18章 Command模式应用实践 239

18.1 需求分析——安装向导 239

18.2 糟糕的设计 240

18.3 引入Command模式 243

18.4 进一步完善 246

第19章 Chain Of Responsibility模式应用实践 251

19.1 需求分析——应用服务管理器 252

19.2 简单有效的设计 254

19.3 利用抽象引入Template Method模式 258

19.4 方向错误了吗 262

19.5 Chain Of Responsibility模式 264

第20章 Observer模式应用实践 276

20.1 需求分析——监控设备状态 277

20.2 引入Observer模式 278

20.3 利用事件与委托改进Observer模式 282

第21章 Proxy模式应用实践 287

21.1 需求分析——设备控件显示 287

21.2 引入Proxy模式 288

21.3 完善设计 293

第22章 复合的设计模式应用实践 299

22.1 需求分析 299

22.2 糟糕的设计 300

22.3 面向对象的设计思想 302

22.4 引入Strategy模式 303

22.5 需求发生变化 307

22.6 引入Template Method模式 307

22.7 合理的设计才是最好的设计 311

22.8 引入Bridge模式 312

22.9 接口分离 319

22.10 引入Abstract Factory模式 323

第5篇 .NET体系架构设计 332

第23章 软件体系架构设计 332

23.1 分层式架构设计 333

23.2 分层式架构设计的优劣 334

23.3 PetShop架构设计的版本演化 335

23.4 PetShop 4.0的系统架构设计 338

第24章 数据访问层设计 342

24.1 数据库样式 342

24.2 数据库对象 344

24.3 SQL语句之瘤 348

24.4 运用ORM的思想 350

24.5 事务的处理 352

24.6 具有简单工厂特质的Abstract Factory模式 355

第25章 消息处理 359

25.1 MSMQ的实现 359

25.1.1 消息处理模块的组成 359

25.1.2 消息接口 360

25.1.3 消息接口的实现 361

25.1.4 消息工厂 363

25.1.5 后台处理应用程序 365

25.1.6 引入Strategy模式 367

25.2 分布式处理 368

第26章 ASP.NET缓存 370

26.1 ASP.NET缓存概述 370

26.2 SqlCacheDependency特性 373

26.2.1 利用aspnet_regsql工具 373

26.2.2 利用SqlCacheDependencyAdmin类 376

26.3 ASP.NET缓存在PetShop 4.0中的实现 377

26.3.1 CacheDependency接口 377

26.3.2 CacheDependency实现 378

26.3.3 CacheDependency工厂 379

26.3.4 引入Facade模式 381

26.3.5 引入Proxy模式 384

第27章 业务逻辑层设计 387

27.1 与领域专家合作 388

27.2 业务逻辑层的模式应用 391

27.3 PetShop的业务逻辑层设计 391

27.4 与数据访问层的通信 395

27.5 面向接口设计 396

第28章 表示层设计 400

28.1 MVC模式 400

28.2 Page Controller模式的应用 402

28.3 ASP.NET控件 405

28.4 ASP.NET 2.0新特性 411

28.4.1 Profile特性 412

28.4.2 Membership特性 416

28.4.3 ASP.NET登录控件 423

28.4.4 Master Page特性 424