书籍详情
深入浅出面向对象分析与设计(中文版)
作者:(美)麦克劳克林(Mclaughlin,B.D) 等著;OReilly Taiwan公司 编译
出版社:东南大学出版社
出版时间:2009-01-01
ISBN:9787564114213
定价:¥98.00
购买这本书可以去
内容简介
你是否早已对市面上那些只有在成为专家以后读起来才有感觉的OOA&D书籍感到厌倦?你可能早就听说过OOA&D书籍能帮助你写出伟大的软件——让老板高兴、客户满意的软件。但如何办到呢?《深入浅出面向对象分析与设计》将告诉你如何分析、设计以及撰写真正面向对象的软件:容易重用、好维护、可扩展的软件;不再使你心碎的软件;让你增添新功能而不会破坏旧机制的软件。在本书中,你将学到:使用诸如封装(encapsulation)与委派(delegation)之类的OO原则建立灵活的应用程序;使用开闭原则(Open-Closed Principle)与单一职责原则(Single-Responsibilitv Principle)提升程序的重用性;学习如何将OO原则、设计模式及各种开发方法通通整合到OOA&D项目的生命周期里;运用UML、用例及用例图来确保所有利害关系人都能清楚地进行沟通,协助你交付正确的软件,达到每个人的要求。
作者简介
Brett McLaughlin ,Brett McLaughlin是一位出色的吉他手,擅长于蓝调布鲁斯和爵士乐的演奏。同时,作为一位帮助人们更好地编写程序的作家,McLaughlin为读者奉献了许多优秀的作品和畅销书籍。如《Java and XML》,《Java 5.0 Ti-ger:A Developers Notebook》,《Home Theater Hacks》等等。
目录
介绍
谁适合读这本书?
我们知道你在想什么
元认知
让你的脑袋顺从你的方法
读我
技术审阅团队
致谢
1 伟大软件由此开始:良好应用程序的基石
永远的摇滚乐!
Rick的金光闪闪的新应用程序
什么是你要改变的第一件事?
伟大软件……
伟大软件的简易三步骤
先聚焦在功能性上
测试驱动
寻找问题
分析
运用基础的OO原则
设计一次,设计两次
改变你的应用程序有多简单?
封装变化之物
委托
最后的伟大软件(就现在而言)
OOA&D关系到编写伟大软件
要点
2 给客户所需之物:收集需求
大显身手的机会来了
测试驱动
不正确的使用(有一点)
那么,需求究竟是什么?
创建需求列表
为错误作规划
替代路径(alternate path)处理系统的疑:
(再次)介绍用例
一个用例,三个部分
按照用例检查需求
你的系统必须在真实世界里运作
认识快乐路径(Happy Path)
OOA&D工具箱
3 山可移,此情永不渝……现在,情况有变:需求变更
你是英雄!
牺牲品?
软件分析与设计的不变真理
可选路径?替换路径?谁能分得清?
用例对你而言必须合理
从开始到完成:单一场景
替换路径的真心话
完成需求列表
重复程序代码,逊!
最后的测试驱动
写下你自己的设计原则
OOA&D工具箱
4 将你的软件带进现实世界:分析
一只狗,两只狗,三只狗,四只狗……
你的软件有其情境
识别问题
规划解法方案
两位程序员的故事
委托绕道
低耦合应用程序的威力
注意用例里的名词
从好分析到好类……
类图解析
类图不是一切
要点
5 第一部分:诸行无常——良好的设计
Rick的吉他事业蒸蒸日上
抽象类
类图解析(再一次)
UML小抄
设计问题的警告
通往伟大软件的三步骤(重访)
插曲:OO大灾难
5 第二部分:给你的软件30分钟的伸展操——灵活的软件
回到Rick的搜索工具
仔细瞧瞧search()方法
分析的好处
类实际上关系到行为
设计之死(决策)
将坏的设计决策转变成好的
Rick的软件中的“双封装”
不要害怕犯错及改变
瞧!Rick的具有灵活性的应用程序
测试驱动Rick的设计良好的软件
改变Rick的软件有多容易?
变更容易性的大挑战
具有内聚性的类善于处理好单一事情
设计/内聚力生命周期
伟大的软件通常就是“够好的软件”
OOA&D工具箱
6 “我的名字是Art Vandelay”:解决真正的大问题
解决大问题
关键在于你如何看待大问题
需求与用例是个好起点……
共同性与变化性
整理功能
功能与需求之间的“差别”
用例不总是帮你看出整体轮廓
用例图
小小参与者
参与者也是人(好吧,不全然)
做一点领域分析吧
化整为零,个个击破
别忘了真正的客户是谁
何谓设计模式?
OO&D的威力(以及一些小常识)
OOA&D工具箱
7 为混乱带来次序:架构
感觉有点头昏吗?
我们需要架构
从功能开始
什么是架构的意义?
架构三问
减少风险
场景有助于减少风险
一次把焦点放在一个功能上
架构是你的设计结构
再访共同性
共同性分析:通往灵活软件之路
什么意思?问客户吧。
减少风险有助于伟大软件自
要点
8 原创性被高估:设计原则
设计原则大集合
开关原则(OCP)
OCP,一步一步来
不自我重复原则(DRY)
DRY完全关系到一个地方一个需求
单一职责原则(SRP)
找出多重职责
从多重职责到单一职责
Liskov替换原则(LSP)
子类化的误用:误用继承的案例研究
LSP揭露继承结构所隐藏的问题
子类型必须能替换其基类型
违反LSP造成令人困惑的程序代码
将功能性委托给其他类
使用组合将来自其他多个类的行为集合起来
聚合:组合,但没有突然的结束
组合VS.聚合
继承只是选项之一
要点
OOA&D工具箱
9 软件终究为客户服务:重复与测试
你的工具箱满了
伟大软件的编写是迭代进行的
更深入地迭代:两种基本选择
功能驱动开发
用例驱动开发
两种开发方式
功能分析
编写测试场景
测试驱动开发
再探共同性
强调共同性
强调封装
比对你的测试与设计
测试案例解析……
向客户证明
到目前为止,我们一直在按契约编程
按契约编程关乎信任
防御性编程
将你的应用程序分解成较小的功能块
要点
OOA&D工具箱
10 组合在一起:OOA&D生命周期
开发软件,OOA&D风格
对象村旅游
对象村地铁线路图
功能列表
用例反映使用性,功能反映功能性
现在开始迭代
仔细看看地铁的表示
使用或不使用Line类……那是个问题
对象村地铁的关注要点(Subway类)
保护你的类(还有客户的类)
中场休息
回归需求阶段……
聚焦于程序代码,然后聚焦于客户
迭代(iteration)让问题比较容易
路线看起来像什么?
让自己看看对象村!
第三次迭代,有人要试试吗?
旅程未结束……
附录1:本书遗珠
附录2:欢迎光临对象村
谁适合读这本书?
我们知道你在想什么
元认知
让你的脑袋顺从你的方法
读我
技术审阅团队
致谢
1 伟大软件由此开始:良好应用程序的基石
永远的摇滚乐!
Rick的金光闪闪的新应用程序
什么是你要改变的第一件事?
伟大软件……
伟大软件的简易三步骤
先聚焦在功能性上
测试驱动
寻找问题
分析
运用基础的OO原则
设计一次,设计两次
改变你的应用程序有多简单?
封装变化之物
委托
最后的伟大软件(就现在而言)
OOA&D关系到编写伟大软件
要点
2 给客户所需之物:收集需求
大显身手的机会来了
测试驱动
不正确的使用(有一点)
那么,需求究竟是什么?
创建需求列表
为错误作规划
替代路径(alternate path)处理系统的疑:
(再次)介绍用例
一个用例,三个部分
按照用例检查需求
你的系统必须在真实世界里运作
认识快乐路径(Happy Path)
OOA&D工具箱
3 山可移,此情永不渝……现在,情况有变:需求变更
你是英雄!
牺牲品?
软件分析与设计的不变真理
可选路径?替换路径?谁能分得清?
用例对你而言必须合理
从开始到完成:单一场景
替换路径的真心话
完成需求列表
重复程序代码,逊!
最后的测试驱动
写下你自己的设计原则
OOA&D工具箱
4 将你的软件带进现实世界:分析
一只狗,两只狗,三只狗,四只狗……
你的软件有其情境
识别问题
规划解法方案
两位程序员的故事
委托绕道
低耦合应用程序的威力
注意用例里的名词
从好分析到好类……
类图解析
类图不是一切
要点
5 第一部分:诸行无常——良好的设计
Rick的吉他事业蒸蒸日上
抽象类
类图解析(再一次)
UML小抄
设计问题的警告
通往伟大软件的三步骤(重访)
插曲:OO大灾难
5 第二部分:给你的软件30分钟的伸展操——灵活的软件
回到Rick的搜索工具
仔细瞧瞧search()方法
分析的好处
类实际上关系到行为
设计之死(决策)
将坏的设计决策转变成好的
Rick的软件中的“双封装”
不要害怕犯错及改变
瞧!Rick的具有灵活性的应用程序
测试驱动Rick的设计良好的软件
改变Rick的软件有多容易?
变更容易性的大挑战
具有内聚性的类善于处理好单一事情
设计/内聚力生命周期
伟大的软件通常就是“够好的软件”
OOA&D工具箱
6 “我的名字是Art Vandelay”:解决真正的大问题
解决大问题
关键在于你如何看待大问题
需求与用例是个好起点……
共同性与变化性
整理功能
功能与需求之间的“差别”
用例不总是帮你看出整体轮廓
用例图
小小参与者
参与者也是人(好吧,不全然)
做一点领域分析吧
化整为零,个个击破
别忘了真正的客户是谁
何谓设计模式?
OO&D的威力(以及一些小常识)
OOA&D工具箱
7 为混乱带来次序:架构
感觉有点头昏吗?
我们需要架构
从功能开始
什么是架构的意义?
架构三问
减少风险
场景有助于减少风险
一次把焦点放在一个功能上
架构是你的设计结构
再访共同性
共同性分析:通往灵活软件之路
什么意思?问客户吧。
减少风险有助于伟大软件自
要点
8 原创性被高估:设计原则
设计原则大集合
开关原则(OCP)
OCP,一步一步来
不自我重复原则(DRY)
DRY完全关系到一个地方一个需求
单一职责原则(SRP)
找出多重职责
从多重职责到单一职责
Liskov替换原则(LSP)
子类化的误用:误用继承的案例研究
LSP揭露继承结构所隐藏的问题
子类型必须能替换其基类型
违反LSP造成令人困惑的程序代码
将功能性委托给其他类
使用组合将来自其他多个类的行为集合起来
聚合:组合,但没有突然的结束
组合VS.聚合
继承只是选项之一
要点
OOA&D工具箱
9 软件终究为客户服务:重复与测试
你的工具箱满了
伟大软件的编写是迭代进行的
更深入地迭代:两种基本选择
功能驱动开发
用例驱动开发
两种开发方式
功能分析
编写测试场景
测试驱动开发
再探共同性
强调共同性
强调封装
比对你的测试与设计
测试案例解析……
向客户证明
到目前为止,我们一直在按契约编程
按契约编程关乎信任
防御性编程
将你的应用程序分解成较小的功能块
要点
OOA&D工具箱
10 组合在一起:OOA&D生命周期
开发软件,OOA&D风格
对象村旅游
对象村地铁线路图
功能列表
用例反映使用性,功能反映功能性
现在开始迭代
仔细看看地铁的表示
使用或不使用Line类……那是个问题
对象村地铁的关注要点(Subway类)
保护你的类(还有客户的类)
中场休息
回归需求阶段……
聚焦于程序代码,然后聚焦于客户
迭代(iteration)让问题比较容易
路线看起来像什么?
让自己看看对象村!
第三次迭代,有人要试试吗?
旅程未结束……
附录1:本书遗珠
附录2:欢迎光临对象村
猜您喜欢