图书介绍

道法自然 面向对象实践指南【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

道法自然 面向对象实践指南
  • 王咏武,王咏刚著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121002264
  • 出版时间:2004
  • 标注页数:432页
  • 文件大小:100MB
  • 文件页数:455页
  • 主题词:面向对象语言-软件开发

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

道法自然 面向对象实践指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 需求分析:追求完美vs.容忍缺陷1

1.1 开发日记:2003年11月6日,星期四1

1.2 鱼和熊掌4

1.3 项目目标和项目范围6

1.3.1 项目目标6

1.3.2 项目范围7

1.4 需求分析的基本概念8

1.4.1 什么是需求8

1.4.2 功能性需求和非功能性需求8

1.4.3 项目干系人9

1.4.4 需求分析10

1.5 FishGUI的需求分析11

1.5.1 小A的错误11

1.5.2 正确的需求分析方法15

1.6 变化的需求22

1.6.1 需求变更的原因和对策22

1.6.2 FishGUI项目的需求变化22

1.7 总结24

第2章 用例分析:海底总动员vs.云中漫步25

2.1 开发日记:2003年11月10日,星期一25

2.2 为什么使用UML26

2.3 用例模型27

2.3.1 什么是用例模型27

2.3.2 场景28

2.3.3 用例模型的应用价值28

2.4 用例建模30

2.4.1 确定系统边界和参与者31

7.2.4 聚合的粒度 132

2.4.2 确定用例级别33

2.4.3 FishGUI的用例建模37

2.5 总结42

第3章 设计方法:面向过程vs.面向对象43

3.1 开发日记:2003年11月13日,星期四43

3.2 面向过程的方法适合FishGUI吗46

3.3 如何衡量软件的设计质量47

3.4 面向对象的设计方法48

3.4.1 关于面向对象的两种误解48

3.4.2 面向对象的基本概念51

3.4.3 面向对象的基本原则55

3.4.4 面向对象的开发过程58

3.5 框架和类库58

3.5.1 框架和类库的区别59

3.5.2 框架的分类59

3.6.1 瀑布模型60

3.6 软件生命周期模型60

3.6.2 迭代模型61

3.6.3 瀑布模型和迭代模型的比较62

3.7 总结64

第4章 模式:变化之美vs.永恒之道65

4.1 开发日记:2003年11月14日,星期五65

4.2 模式66

4.2.1 模式的起源66

4.2.2 模式的概念67

4.3.1 如何学习和实践设计模式68

4.3 设计模式68

4.2.3 模式的分类68

4.3.2 蕴涵在设计模式中的设计原则和理念69

4.3.3 设计模式最根本的意图是适应需求变化70

4.3.4 针对接口编程,而不要针对实现编程73

4.3.5 优先使用聚合,而不是继承77

4.3.6 设计模式的分类79

4.3.7 设计模式的意图和设计要点80

4.3.8 设计模式中的简单和复杂82

4.4 总结83

5.1 开发日记:2003年11月17日,星期一84

第5章 分析模型:实体类vs.软件类84

5.2 面向对象的思维方式85

5.3.1 面向对象分析与面向对象设计的区别86

5.3 面向对象分析86

5.3.2 实体类和软件类89

5.3.3 用例驱动的面向对象分析工作92

5.4 FishGUI的分析模型92

5.4.1 提取实体对象和实体类92

5.4.3 提取关系96

5.4.2 提取属性96

5.4.4 添加边界类97

5.4.5 添加控制类99

5.4.6 绘制类图99

5.4.7 绘制顺序图100

5.4.8 变化的需求——快捷键表101

5.4.9 编制术语表103

5.5 总结104

第6章 架构分析:功能分解vs.对象分析105

6.1 开发日记:2003年11月20日,星期四105

6.2 架构分析的基本概念106

6.2.1 什么是架构分析106

6.2.2 架构分析的作用107

6.2.3 避免走入功能分解的误区107

6.2.4 软件系统的类型和规模108

6.2.5 以架构为中心108

6.2.6 架构模式109

6.3 FishGUI系统的架构分析110

6.3.1 分层模式110

6.3.2 FishGUI的分层架构113

6.3.3 模型—视图—控制器(MVC)模式114

6.3.4 应用层的MVC模式116

6.3.5 子系统设计117

6.3.6 FishGUI的子系统设计119

6.4 总结123

第7章 面向对象设计:共性vs.个性124

7.1 开发日记:2003年11月24日,星期一124

7.2 对象和类的粒度125

7.2.1 CPU难题125

7.2.2 继承的粒度129

7.2.3 多重继承130

7.2.5 纯粹为代码复用而存在的设计方案133

7.2.6 类结构的重构134

7.3 FishGUI的面向对象设计136

7.3.1 面向对象设计的工作步骤136

7.3.2 细化和重组类136

7.3.3 细化和实现类间关系,明确其可见性138

7.3.4 增加遗漏的属性,指定属性的类型和可见性144

7.3.5 分配职责,定义执行每个职责的方法146

7.3.6 消息驱动的系统,明确消息传递方式154

7.3.7 利用设计模式进行局部设计157

7.3.8 画出详细的顺序图或协作图158

7.4 总结159

第8章 外观模式:统一接口vs.暴露细节160

8.1 开发日记:2003年12月1日,星期一160

8.2 什么是接口161

8.2.1 Java语言中的接口161

8.2.2 C++语言的接口162

8.3 外观(Facade)模式164

8.3.2 基本结构165

8.3.1 设计意图165

8.4 FishGUI适配器子系统的外观模式实现166

8.4.1 适配器子系统的详细设计166

8.4.2 适配器子系统的移植167

8.4.3 外观类168

8.5 总结171

第9章 观察者模式:间接依赖vs.直接依赖172

9.1 开发日记:2003年12月2日,星期二172

9.2 双向依赖176

9.2.1 头文件的循环嵌套问题176

9.2.2 包的双向依赖问题178

9.3 观察者(Observer)模式179

9.3.1 设计意图179

9.3.2 基本结构179

9.3.3 实现方法181

9.4 FishGUI系统中的观察者模式184

9.4.1 为什么采用观察者模式184

9.4.2 FishGUI中观察者模式的实现方法186

9.4.3 观察者模式的优点188

9.5 总结189

10.1 开发日记:2003年12月4日,星期四190

第10章 单件模式:隐式全局变量vs.显式全局变量190

10.2 关于历史问题的回顾191

10.2.1 传统的思维方式191

10.2.2 奇特的解决方案192

10.2.3 麻烦事193

10.3 全局变量——程序员心中永远的痛194

10.4 单件(Sigleton)模式195

10.4.1 设计意图195

10.4.2 基本结构195

10.4.3 实现方法196

10.5 FishGUI中的单件模式200

10.5.1 标准的单件类200

10.5.2 单件类的内存释放202

10.5.3 单件类的灵活运用207

10.5.4 单件类的创建顺序210

10.6 总结214

第11章 复合模式:透明vs.安全215

11.1 开发日记:2003年12月8日,星期一215

11.2.2 对象图217

11.2 类图和对象图217

11.2.1 类图217

11.3 继承树的透明和安全218

11.3.1 透明的继承树218

11.3.2 透明和职责分配的冲突218

11.3.3 安全的类型转换220

11.3.4 虚函数的声明方式222

11.4 复合(Composite)模式224

11.4.1 设计意图224

11.4.2 基本结构224

11.4.3 实现方法225

11.5 FishGUI系统的复合模式228

11.5.1 最透明的GUI复合模式228

11.5.2 FishGUI中的最终实现229

11.6 总结231

第12章 迭代器模式:继承vs.模板232

12.1 开发日记:2003年12月11日,星期四232

12.2 关于protected的一个小问题234

12.3 只实现一次,仅只一次236

12.4 容器类237

12.4.1 双向链表237

12.4.2 单向链表239

12.4.3 已知的问题240

12.5 迭代器(Iterator)模式241

12.5.1 设计意图241

12.5.2 基本结构241

12.5.3 实现方法242

12.6 FishGUI中迭代器模式的具体实现245

12.6.1 智能指针246

12.6.2 模板的“静态多态性”247

12.6.3 复用的算法实现249

12.6.4 添加迭代器250

12.7 迭代器遍历时的稳定性251

12.8 总结254

第13章 创建型模式:工厂方法vs.抽象工厂255

13.1 开发日记:2003年12月15日,星期一255

13.2 创建型模式257

13.3 工厂方法(Factory Method)模式258

13.3.1 设计意图258

13.3.2 基本结构259

13.3.3 实现方法259

13.4.2 基本结构260

13.4 抽象工厂(Abstract Factory)模式260

13.4.1 设计意图260

13.4.3 实现方法261

13.5 FishGUI的创建型模式262

13.5.1 工厂方法模式262

13.5.2 抽象工厂模式265

13.6 策略(Strategy)模式268

13.6.1 设计意图268

13.6.2 基本结构268

13.7 FishGUI中抽象工厂模式和策略模式的组合269

13.8 对象的创建和删除271

13.9 总结274

第14章 消息:广义消息vs.狭义消息275

14.1 开发日记:2003年12月17日,星期三275

14.2 消息的本质277

14.2.1 广义消息和狭义消息277

14.2.2 消息和回调函数277

14.2.3 同步消息和异步消息279

14.2.4 消息网281

14.3 消息处理模式282

14.4.3 实现方法283

14.4.2 基本结构283

14.4 命令(Command)模式283

14.4.1 设计意图283

14.5 中介者(Mediator)模式285

14.5.1 设计意图285

14.5.2 基本结构285

14.5.3 实现方法286

14.6 职责链(Chain of Responsiblity)模式287

14.6.1 设计意图287

14.6.3 实现方法288

14.6.2 基本结构288

14.7 观察者(Observer)模式290

14.8 FishGUI的消息处理模式290

14.8.1 职责链模式290

14.8.2 对象树和继承树上的消息传递291

14.8.3 职责链模式的具体实现294

14.9 Java和.NET的消息处理模式302

14.9.1 JDK 1.0 AWT的职责链模式303

14.9.2 JDK 1.1 AWT的观察者模式303

14.9.3 用多播方式发送消息305

14.9.4 .NET基于委托的观察者模式307

14.10 总结318

第15章 模板方法模式:正向依赖vs.依赖倒置319

15.1 开发日记:2003年12月23日,星期二319

15.2 模板方法(Template Method)模式321

15.2.1 设计意图321

15.2.2 基本结构321

15.2.3 实现方法322

15.3.2 用模板方法模式进行重构325

15.3.1 FG_Application类中的模板方法模式325

15.3 FishGUI中的模板方法模式325

15.3.3 基于模板方法模式实现的消息分发机制326

15.4 总结329

第16章 MFC消息映射表模式:虚函数vs.映射表330

16.1 开发日记:2003年12月25日,星期四330

16.2 虚函数表331

16.3 MFC消息映射表(Message Map)模式333

16.3.1 设计意图333

16.3.2 实现方法333

16.4.1 实现方法339

16.4 FishGUI中的消息映射表模式339

16.4.2 优点345

16.4.3 缺陷346

16.5 总结347

第17章 适配器模式:类模式vs.对象模式349

17.1 开发日记:2004年1月5日,星期一349

17.2 类模式和对象模式352

17.3 适配器(Adapter)模式353

17.3.1 设计意图353

17.3.2 基本结构354

17.4.1 被适配类355

17.3.3 实现方法355

17.4 FishGUI中的适配器模式355

17.4.2 对象适配器模式357

17.4.3 类适配器模式361

17.4.4 适配多个派生类362

17.5 总结366

第18章 MVC模式:三国演义vs.三分归一367

18.1 开发日记:2004年1月8日,星期四367

18.2 “提炼类”和“将类内联化”368

18.3.1 设计意图369

18.3 模型—视图—控制器(MVC)模式369

18.3.3 实现方法371

18.3.2 基本结构371

18.3.4 MVC模式的不足373

18.4 FishGUI中的MVC模式373

18.5 总结379

第19章 C++编码经验谈:理论vs.实践380

19.1 开发日记:2004年1月12日,星期一380

19.2 博大精深的C++语言382

19.3.1 为什么要使用const384

19.3 const的使用384

19.3.2 标识常量385

19.3.3 标识类的常量成员385

19.3.4 标识输入和输出参数386

19.3.5 修饰成员函数387

19.3.6 消除常量特性388

19.4 new和delete389

19.4.1 用new和delete代替malloc()和free()389

19.4.2 new和delete应使用相同的形式390

19.5 谨慎地使用隐式类型转换392

19.4.3 默认构造函数和转换构造函数392

19.6 拷贝构造函数和赋值运算符函数394

19.6.1 定义拷贝构造函数和赋值运算符函数394

19.6.2 赋值运算符函数要返回*this的引用398

19.7 数据成员的初始化400

19.7.1 初始化比赋值高效400

19.7.2 初始化顺序402

19.8 传值、传指针和传引用403

19.8.1 对于大型对象尽量传引用403

19.8.2 有时也必须使用传值的方式404

19.9 运算符重载407

19.9.1 成员运算符函数和全局运算符函数407

19.9.2 “++”和“--”运算符409

19.10 虚析构函数411

19.10.1 基类和聚合类的释放411

19.10.2 虚析构函数414

19.11 总结416

附录A FishGUI的安装和使用417

附录B FishGUI的改进423

参考文献429

热门推荐