注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件工程及软件方法学道法自然:面向对象实践指南

道法自然:面向对象实践指南

道法自然:面向对象实践指南

定 价:¥45.00

作 者: 王咏武,王咏刚著
出版社: 电子工业出版社
丛编项: 来自开发第一线的项目全过程实例分析
标 签: 面向对象

ISBN: 9787121002267 出版时间: 2004-10-01 包装: 平装
开本: 24cm 页数: 464 字数:  

内容简介

  看完这本书,我不由得深深呼一口气,因为实在太精彩了,内容扎实、丰富,看得出作者花了极大的心血。如果您想了解如何使用C/C++以面向对象方式开发实际软件,这是一本不容错过的好书。:李维源于实践、解析实践、把握实践探寻步入面向对象殿堂的最佳途径本书是一本试图用实战案例阐释面向对象技术体系的指南本书共分19章,通过实际的开发案例:FishGUI项目为主线依次介绍了需求和用例分析、面向对象分析、架构分析、面向对象设计、设计模式、编码技巧等几个主要的技术领域,并基本按照时间顺序,描述了FishGUI系统设计和实现的全过程。如果把面向对象大师们偏重理论建构的经典读物称为面向对象盛宴中的主菜,那么,这本指南若能充当佐餐的凉菜或是饭后的甜点,作者就心满意足了。本书适合所有在软件开发领域辛勤工作的开发人员、管理人员、系统分析人员、测试人员、技术支持人员等阅读。

作者简介

  王咏武:在软件待业摸爬滚打十多年。大学毕业后在UNIX系统下学了几年C和C++语言,尝试开发了几个大型软件,随后又有机会在大型主机一人多高的CPU、硬盘以及水管精细的导线面前编写复杂的COBOL程序;最近几年则一直在移动通信领域奋斗,在Sonlaris和Windows系统下开发、调试手机软件平台。现在已经不再狂热地追寻各种新的语言和技术,而是把更多的精力放在面向对象技术的应用层面上,并特别关心同向对象技术在嵌入式系统中的应用。王咏刚:职业程序员,业余撰稿人。在数据压缩、全文检索、内容管理、分布式系统、软件测试等技术领域有一定的积累。撰写过《凌波微步——软件开发警戒案例集》协助微软亚洲研究院编写过《软件企业的管理与文化》等技术书籍。曾在《程序员》、《CSDN开发高手》等杂志主持技术专栏,在《中华读书报》等媒体发表书评文章若干,还以”王笨笨“的名义在网络上发布过一些小有名气的技术教程。

图书目录

第1章 需求分析:追求完美VS.容忍缺陷
1.1 开发日记:2003年11月6日,星期四
1.2 鱼和熊掌
1.3 项目目标和项目范围
1.3.1 项目目标
1.3.2 项目范围
1.4 需求分析的基本概念
1.4.1 什么是需求?
1.4.2 功能性需求和非功能性需求
1.4.3 项目干系人
1.4.4 需求分析
1.5 FISHGUI的需求分析
1.5.1 小A的错误
1.5.2 正确的需求分析方法
1.6 变化的需求
1.6.1 需求变更的原因和对策
1.6.2 FishGUI项目的需求变化
1.7 总结
第2章 用例分析:海底总动员VS.云中漫步
2.1 开发日记:2003年11月10日,星期一
2.2 为什么使用UML?
2.3 用例模型
2.3.1 什么是用例模型?
2.3.2 场景
2.3.3 用例模型的应用价值
2.4 用例建模
2.4.1 确定系统边界和参与者
2.4.2 确定用例级别
2.4.3 FishGUI的用例建模
2.5 总结
第3章 设计方法:面向过程VS.面向对象
3.1 开发日记:2003年11月13日,星期四
3.2 面向过程的方法适合FISHGUI吗?
3.3 如何衡量软件的设计质量?
3.4 面向对象的设计方法
3.4.1 关于面向对象的两种误解
3.4.2 面向对象的基本概念
3.4.3 面向对象的基本原则
3.4.4 面向对象的开发过程
3.5 框架和类库
3.5.1 框架和类库的区别
3.5.2 框架的分类
3.6 软件生命周期模型
3.6.1 瀑布模型
3.6.2 迭代模型
3.6.3 瀑布模型和迭代模型的比较
3.7 总结
第4章 模式:变化之美VS.永恒之道
4.1 开发日记:2003年11月14日,星期五
4.2 模式
4.2.1 模式的起源
4.2.2 模式的概念
4.2.3 模式的分类
4.3 设计模式
4.3.1 如何学习和实践设计模式?
4.3.2 蕴涵在设计模式中的设计原则和理念
4.3.3 设计模式最根本的意图是适应需求变化
4.3.4 针对接口编程,而不要针对实现编程
4.3.5 优先使用聚合,而不是继承
4.3.6 设计模式的分类
4.3.7 设计模式的意图和设计要点
4.3.8 设计模式中的简单和复杂
4.4 总结
第5章 分析模型:实体类VS.软件类
5.1 开发日记:2003年11月17日,星期一
5.2 面向对象的思维方式
5.3 面向对象分析
5.3.1 面向对象分析与面向对象设计的区别
5.3.2 实体类和软件类
5.3.3 用例驱动的面向对象分析工作
5.4 FISHGUI的分析模型
5.4.1 提取实体对象和实体类
5.4.2 提取属性
5.4.3 提取关系
5.4.4 添加边界类
5.4.5 添加控制类
5.4.6 绘制类图
5.4.7 绘制顺序图
5.4.8 变化的需求——快捷键表
5.4.9 编制术语表
5.5 总结
第6章 架构分析:功能分解VS.对象分析
6.1 开发日记:2003年11月20日,星期四
6.2 架构分析的基本概念
6.2.1 什么是架构分析?
6.2.2 架构分析的作用
6.2.3 避免走入功能分解的误区
6.2.4 软件系统的类型和规模
6.2.5 以架构为中心
6.2.6 架构模式
6.3 FISHGUI系统的架构分析
6.3.1 分层模式
6.3.2 FishGUI的分层架构
6.3.3 模型-视图-控制器(MVC)模式
6.3.4 应用层的MVC模式
6.3.5 子系统设计
6.3.6 FishGUI的子系统设计
6.4 总结
第7章 面向对象设计:共性VS.个性
7.1 开发日记:2003年11月24日,星期一
7.2 对象和类的粒度
7.2.1 CPU难题
7.2.2 继承的粒度
7.2.3 多重继承
7.2.4 聚合的粒度
7.2.5 纯粹为代码复用而存在的设计方案
7.2.6 类结构的重构
7.3 FISHGUI的面向对象设计
7.3.1 面向对象设计的工作步骤
7.3.2 细化和重组类
7.3.3 细化和实现类间关系,明确其可见性
7.3.4 增加遗漏的属性,指定属性的类型和可见性
7.3.5 分配职责,定义执行每个职责的方法
7.3.6 对消息驱动的系统,明确消息传递方式
7.3.7 利用设计模式进行局部设计
7.3.8 画出详细的顺序图或协作图
7.4 总结
第8章 外观模式:统一接口VS.暴露细节
8.1 开发日记:2003年12月1日,星期一
8.2 什么是接口?
8.2.1 Java语言中的接口
8.2.2 C++语言的接口
8.3 外观(FACADE)模式
8.3.1 设计意图
8.3.2 基本结构
8.4 FISHGUI适配器子系统的外观模式实现
8.4.1 适配器子系统的详细设计
8.4.2 适配器子系统的移植
8.4.3 外观类
8.5 总结
第9章 观察者模式:间接依赖VS.直接依赖
9.1 开发日记:2003年12月2日,星期二
9.2 双向依赖
9.2.1 头文件的循环嵌套问题
9.2.2 包的双向依赖问题
9.3 观察者(OBSERVER)模式
9.3.1 设计意图
9.3.2 基本结构
9.3.3 实现方法
9.4 FISHGUI系统中的观察者模式
9.4.1 为什么采用观察者模式?
9.4.2 FishGUI中观察者模式的实现方法
9.4.3 观察者模式的优点
9.5 总结
第10章 单件模式:隐式全局变量VS.显式全局变量
10.1 开发日记:2003年12月4日,星期四
10.2 关于历史问题的回顾
10.2.1 传统的思维方式
10.2.2 奇特的解决方案
10.2.3 麻烦事
10.3 全局变量——程序员心中永远的痛
10.4 单件(SIGLETON)模式
10.4.1 设计意图
10.4.2 基本结构
10.4.3 实现方法
10.5 FISHGUI中的单件模式
10.5.1 标准的单件类
10.5.2 单件类的内存释放
10.5.3 单件类的灵活运用
10.5.4 单件类的创建顺序
10.6 总结
第11章 复合模式:透明VS.安全
11.1 开发日记:2003年12月8日,星期一
11.2 类图和对象图
11.2.1 类图
11.2.2 对象图
11.3 继承树的透明和安全
11.3.1 透明的继承树
11.3.2 透明和职责分配的冲突
11.3.3 安全的类型转换
11.3.4 虚函数的声明方式
11.4 复合(COMPOSITE)模式
11.4.1 设计意图
11.4.2 基本结构
11.4.3 实现方法
11.5 FISHGUI系统的复合模式
11.5.1 最透明的GUI复合模式
11.5.2 FishGUI中的最终实现
11.6 总结
第12章 迭代器模式:继承VS.模板
12.1 开发日记:2003年12月11日,星期四
12.2 关于PROTECTED的一个小问题
12.3 只实现一次,仅只一次
12.4 容器类
12.4.1 双向链表
12.4.2 单向链表
12.4.3 已知的问题
12.5 迭代器(ITERATOR)模式
12.5.1 设计意图
12.5.2 基本结构
12.5.3 实现方法
12.6 FISHGUI中迭代器模式的具体实现
12.6.1 智能指针
12.6.2 模板的“静态多态性”
12.6.3 可复用的算法实现
12.6.4 添加迭代器
12.7 迭代器遍历时的稳定性
12.8 总结
第13章 创建型模式:工厂方法VS.抽象工厂
13.1 开发日记:2003年12月15日,星期一
13.2 创建型模式
13.3 工厂方法(FACTORY METHOD)模式
13.3.1 设计意图
13.3.2 基本结构
13.3.3 实现方法
13.4 抽象工厂(ABSTRACT FACTORY)模式
13.4.1 设计意图
13.4.2 基本结构
13.4.3 实现方法
13.5 FISHGUI的创建型模式
13.5.1 工厂方法模式
13.5.2 抽象工厂模式
13.6 策略(STRATEGY)模式
13.6.1 设计意图
13.6.2 基本结构
13.7 FISHGUI中抽象工厂模式和策略模式的组合
13.8 对象的创建和删除
13.9 总结
第14章 消息:广义消息VS.狭义消息
14.1 开发日记:2003年12月17日,星期三
14.2 消息的本质
14.2.1 广义消息和狭义消息
14.2.2 消息和回调函数
14.2.3 同步消息和异步消息
14.2.4 消息网
14.3 消息处理模式
14.4 命令(COMMAND)模式
14.4.1 设计意图
14.4.2 基本结构
14.4.3 实现方法
14.5 中介者(MEDIATOR)模式
14.5.1 设计意图
14.5.2 基本结构
14.5.3 实现方法
14.6 职责链(CHAIN OF RESPONSIBLITY)模式
14.6.1 设计意图
14.6.2 基本结构
14.6.3 实现方法
14.7 观察者(OBSERVER)模式
14.8 FISHGUI的消息处理模式
14.8.1 职责链模式
14.8.2 对象树和继承树上的消息传递
14.8.3 职责链模式的具体实现
14.9 JAVA和.NET的消息处理模式
14.9.1 JDK 1.0 AWT的职责链模式
14.9.2 JDK 1.1 AWT的观察者模式
14.9.3 用多播方式发送消息
14.9.4 .NET基于委托的观察者模式
14.10 总结
第15章 模板方法模式:正向依赖VS.依赖倒置
15.1 开发日记:2003年12月23日,星期二
15.2 模板方法(TEMPLATE METHOD)模式
15.2.1 设计意图
15.2.2 基本结构
15.2.3 实现方法
15.3 FISHGUI中的模板方法模式
15.3.1 FG_Application类中的模板方法模式
15.3.2 用模板方法模式进行重构
15.3.3 基于模板方法模式实现的消息分发机制
15.4 总结
第16章 MFC消息映射表模式:虚函数VS.映射表
16.1 开发日记:2003年12月25日,星期四
16.2 虚函数表
16.3 MFC消息映射表(MESSAGE MAP)模式
16.3.1 设计意图
16.3.2 实现方法
16.4 FISHGUI中的消息映射表模式
16.4.1 实现方法
16.4.2 优点
16.4.3 缺陷
16.5 总结
第17章 适配器模式:类模式VS.对象模式
17.1 开发日记:2004年1月5日,星期一
17.2 类模式和对象模式
17.3 适配器(ADAPTER)模式
17.3.1 设计意图
17.3.2 基本结构
17.3.3 实现方法
17.4 FISHGUI中的适配器模式
17.4.1 被适配类
17.4.2 对象适配器模式
17.4.3 类适配器模式
17.4.4 适配多个派生类
17.5 总结
第18章 MVC模式:三国演义VS三分归一
18.1 开发日记:2004年1月8日,星期四
18.2 “提炼类”和“将类内联化”
18.3 模型-视图-控制器(MVC)模式
18.3.1 设计意图
18.3.2 基本结构
18.3.3 实现方法
18.3.4 MVC模式的不足
18.4 FISHGUI中的MVC模式
18.5 总结
第19章 C++编码经验谈:理论VS.实践
19.1 开发日记:2004年1月12日,星期一
19.2 博大精深的C++语言
19.3 CONST的使用
19.3.1 为什么要使用const?
19.3.2 标识常量
19.3.3 标识类的常量成员
19.3.4 标识输入和输出参数
19.3.5 修饰成员函数
19.3.6 消除常量特性
19.4 NEW和DELETE
19.4.1 用new和delete代替malloc()和free()
19.4.2 new和delete应使用相同的形式
19.4.3 缺省构造函数和转换构造函数
19.5 谨慎地使用隐式类型转换
19.6 拷贝构造函数和赋值运算符函数
19.6.1 定义拷贝构造函数和赋值运算符函数
19.6.2 赋值运算符函数要返回*this的引用
19.7 数据成员的初始化
19.7.1 初始化比赋值高效
19.7.2 初始化顺序
19.8 传值、传指针和传引用
19.8.1 对于大型对象尽量传引用
19.8.2 有时也必须使用传值的方式
19.9 运算符重载
19.9.1 成员运算符函数和全局运算符函数
19.9.2 “++”和“--”运算符
19.10 虚析构函数
19.10.1 基类和聚合类的释放
19.10.2 虚析构函数
19.11 总结
附录A:FISHGUI的安装和使用
下载
解压
目录结构
编译运行
安装注意事项
ROSE模型
文档
移植步骤
附录B:FISHGUI的改进
异步消息传输
消息队列
消息循环
观察者模式
裁剪
视口
扩展控件库
中文处理
附录C:参考文献
参考文献

本目录推荐