
| 第一部分 引言 1 第1章 面向对象的含义 3 1.1 封装 7 1.2 信息/实现隐藏 9 1.3 状态保持 11 1.4 对象标识 11 1.5 消息 14 1.5.1 消息结构 15 1.5.2 消息参数 15 1.5.3 消息中的对象角色 17 1.5.4 消息的类型 18 1.6 类 19 1.7 继承 23 1.8 多态性 27 1.9 一般性 30 1.10 本章小结 34 1.11 习题 35 1.12 答案 36 .第2章 面向对象简史 40 2.1 面向对象的起源 40 2.1.1 larry constantine 40 2.1.2 o.-j. dahl 和k.nygaard 40 2.1.3 alan kay,adele goldberg等人 41 2.1.4 edsger dijkstra 41 2.1.5 barbara liskov 41 2.1.6 david parnas 41 2.1.7 jean ichbiah 等人 41 2.1.8 bjarne stroustrup 41 2.1.9 bertrand meyer 42 2.1.10 grady booch,ivar jacobson及jim rumbaugh 42 2.2 面向对象的成熟期 42 2.3 类似工程学的面向对象 43 2.4 面向对象的益处 44 2.4.1 用户需求分析 45 2.4.2 软件设计 45 2.4.3 软件构造 46 2.4.4 软件维护 47 2.4.5 软件使用 47 2.4.6 软件项目管理 48 2.5 本章小结 49 2.6 习题 49 2.7 答案 50 第二部分 统一建模语言(uml) 51 第3章 类、属性和操作的基本表示法 56 3.1 类 56 3.2 属性 57 3.3 操作 58 3.4 重载操作 61 3.5 属性和操作的可视性 62 3.6 类属性和类操作 63 3.7 抽象操作和类 63 3.8 实用程序 65 3.9 参数化类 66 3.10 本章小结 67 3.11 习题 68 3.12 答案 68 第4章 类图 72 4.1 一般化结构 72 4.1.1 单一继承 72 4.1.2 多重继承 74 4.1.3 子类的划分 74 4.1.4 分类识别名称 76 4.2 关联结构 77 4.2.1 关联的基本uml表示法 78 4.2.2 关联类 80 4.2.3 多向关联 81 4.2.4 关联的导航 82 4.3 整体/部分关联 83 4.3.1 组成 83 4.3.2 聚集 85 4.4 本章小结 88 4.5 习题 89 4.6 答案 90 第5章 对象交互图 94 5.1 协同图 94 5.1.1 描述一个消息 95 5.1.2 协同图中的多态性 97 5.1.3 重复的消息 98 5.1.4 在消息中使用self 98 5.2 时序图 100 5.3 异步消息及并发执行 102 5.3.1 描述一个异步消息 103 5.3.2 回调机制 104 5.3.3 异步消息的优先权 107 5.3.4 描述一个广播(无目标)消息 108 5.4 本章小结 109 5.5 习题 110 5.6 答案 110 第6章 状态图 112 6.1 基本状态图 112 6.2 嵌套状态 114 6.3 并发状态和同步 117 6.4 消息结果参数的瞬时状态 121 6.5 连续的、可变的属性 122 6.6 本章小结 124 6.7 习题 125 6.8 答案 126 第7章 体系结构和接口图 130 7.1 描述系统体系结构 130 7.1.1 包 130 7.1.2 硬件环境的配置图 132 7.1.3 软件结构的配置图 133 7.2 人机界面的描述 135 7.2.1 窗口布局图 136 7.2.2 窗口导航图 137 7.2.3 题外话:什么是面向对象的gui 139 7.3 本章小结 139 7.4 习题 140 7.5 答案 140 第三部分 面向对象设计的原则 143 第8章 封装与共生性(connascence) 144 8.1 封装结构 144 8.1.1 封装的级别 144 8.1.2 制定标准管理各个封装级别之间的相互作用 146 8.2 共生性(connascence) 147 8.2.1 共生性的种类 147 8.2.2 差异共生性(contranascence) 150 8.2.3 共生性和封装边界 151 8.2.4 共生性和可维护性 152 8.2.5 面向对象系统中共生性的滥用 154 8.2.6 共生性(connascence)的术语 156 8.3 本章小结 156 8.4 习题 157 8.5 答案 158 第9章 领域、依附集和内聚 160 9.1 对象类的领域 160 9.1.1 基础领域 161 9.1.2 结构领域 161 9.1.3 商业领域 162 9.1.4 应用领域 163 9.1.5 每一领域类的来源 163 9.2 依附集(encum brance) 165 9.2.1 什么是依附集(encumbrance) 165 9.2.2 依附集的使用 167 9.2.3 demeter规则 168 9.3 类的内聚(class cohesion):一个类和它的特性 169 9.3.1 混合事例型内聚 170 9.3.2 混合领域型内聚 171 9.3.3 混合角色型内聚 172 9.4 本章小结 173 9.5 习题 174 9.6 答案 175 第10章 状态空间和行为 178 10.1 一个类的状态空间和行为 178 10.2 子类的状态空间 181 10.3 子类的行为 183 10.4 状态空间的一个约束条件:类的不变式 184 10.5 前置条件和后置条件 186 10.6 本章小结 188 10.7 习题 189 10.8 答案 189 第11章 类型一致性与闭合行为 192 11.1 类与类型 192 11.2 类型一致性原则 194 11.2.1 抗变性与协变性原则 195 11.2.2 抗变性与协变性实例 195 11.2.3 图解抗变性与协变性 199 11.2.4 类型一致性必要条件综述 200 11.3 闭合行为(closed behavior)原则 201 11.4 本章小结 202 11.5 习题 203 11.6 答案 204 第12章 继承与多态性的危险性 207 12.1 继承的滥用 207 12.1.1 错误的聚集 207 12.1.2 倒置的层次结构 208 12.1.3 混淆类及其实例 209 12.1.4 误用 212 12.2 多态性的危险性 215 12.2.1 操作的多态性 215 12.2.2 变量的多态性 217 12.2.3 消息中的多态性 218 12.2.4 多态性与一般性 220 12.3 本章小结 221 12.4 习题 222 12.5 答案 223 第13章 组织操作技术 227 13.1 混合类 227 13.1.1 商务举例 227 13.1.2 图形举例 231 13.2 操作环 234 13.3 本章小结 238 13.4 习题 238 13.5 答案 239 第14章 类的聚合及其所支持的状态和行为 242 14.1 类接口中支持的状态 242 14.2 类接口中支持的行为 243 14.3 类接口中操作的聚合 248 14.4 本章小结 250 14.5 习题 251 14.6 答案 254 第15章 设计软件构件 259 15.1 什么是构件 259 15.2 构件与对象的相似性和区别 260 15.3 构件举例 262 15.4 构件的内部设计 267 15.5 轻量和重量构件 272 15.6 使用构件的优点和缺点 274 15.7 本章小结 277 15.8 习题 278 15.9 答案 278 附录a 面向对象设计检查(walkthrough)列表 280 附录b 面向对象设计者手册 284 附录c 面向对象术语快速指南 288 词汇表 289 参考文献 306 |
商品评论(0条)