书籍详情

深入浅出面向对象分析与设计(中文版)

深入浅出面向对象分析与设计(中文版)

作者:(美)麦克劳克林(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:欢迎光临对象村
猜您喜欢

读书导航