当前位置:文档之家› 面向对象的分析与设计PPT课件

面向对象的分析与设计PPT课件


参考书
面向对象软件工程与 UML, 李飞跃, 人民邮电 出版社 ( 高职教材 )
UML与软件建模 , 徐宝文,清华大学出版社(重 点大学教材)
面向对象设计原理与模式,(美)Dale Skrien著, 清华大学出版社 (国外经典教材)
Java设计模式, 耿祥义,清华大学出版社 大话设计模式,程杰,清华大学出版社
2.实现前面设计接口 – 实现接口 ---- 开发阶段完成, 完成细节设计
思考题:
1. 为什么我们要面向接口编程? 2. Java程序设计中学会的OO方法和本课程
学习的OO有什么区别和联系 3. 按OO要求,项目中的类分几个阶段设计
开发? 每阶段的主要任务是什么?
子类型必须能替换掉它们的父类型 分析:
“企鹅不是鸟” ––子类型必须包含父类型的全部特征
依赖倒转原则
抽象不应该依赖于细节,细节应该依赖于抽象; ---- 针对接口编程,不要对实现编程
解释: 1.高层类不应该依赖低层类;两者都应依赖于 抽象; 2.抽象不应该依赖细节;细节应该依赖抽象
反转实例: 电话指挥修电脑,谁依赖谁? 抽象与实现: 电脑主板-总线插槽-PIC卡的实
例— 抽象不依赖细节,细节依赖抽象。
依赖止于接口--用接口消除强耦合
依赖
A
B
依赖
依赖
A
I
B
用通用接口消除强耦合
案例分析
计算柱体的体积 从键盘输入2个数和一个运算符号,实现简单
运算
要点:分析类的单一职责原则; 分析耦合性及面向抽象编程的基本方法
项目开发中的2个典型问题
1. 需求总是在变 2. 维护和调试花费的大量时间是确定错误
如果一个类承担的职责过多,就等于把这些职 责耦合在一起。一个职责的变化可能会引起消 弱或抑制这个类完成其他职责的功能。这种耦 合会导致脆弱的设计。当变化发生时,设计会 遭到意想不到的破坏。
开-闭原则(核心原则)
软件实体(类、模块、方法)应该可以扩展,但 不可以修改;
换个说法: 类对扩展是开放的, 对修改是封闭的; 用extends 和implements等开放,用private封闭 实际使用:
1.随时准备修改:改变是合理的; 2.原来的代码一般不要改动,合理的方法是
基于原先的代码产生新的类
3.设计之初就准备好应对变化,用抽象来隔 离变化,减少耦合。
开-闭原则的运用:
写一个相对固定的内核; 不断产生新的类,当修改发生时; 新的类给予接口或抽象类创建;
理解: 面向接口编程
里氏替换原则
实现一个最简单的实例
计算立体型几何体体积 要点: 分析其中的耦合性、 程序的复用性
“脏代码”分析
OO基本原则
单一职责原则
功能单一
开-闭原则 依赖倒转原则
允许继承但禁止修改 面向接口编程
里氏替换原则
子类可以完成替换父类
面向抽象原则
耦合止于接口
多用组合少用继承原则 弱耦合
迪米特(最少知识)原则 高内聚/低耦合原则 合成/聚集复用原则
开发阶段(实现): 方法:隐藏实现细节
变化的只是实现而不是设 计
用新的视角思考OO问题
OO设计分析的几个关键目标
内聚度: (亦称: 透明度) 程序中的操作之间联系紧密的程序
耦合度: 两个程序之间联系的强度 耦合度与内聚度成反比
OOAD 追求高内聚底耦合
OO方法中对象的开发
1. 建立一个初步的设计—设计抽象接口 ---- 设计阶段完成,避免陷入细节
面向对象的分析与设计
课程学习的内容
OO设计原则 UML设计图及Rose Rational 工具 OO设计模式 典型项目的分析与设计
学习方法
掌握主要OO原则的原理和应用要点 改变java编程习惯
学会设计 Rational工具的使用; 掌握类图、用例图、顺序图、活动图的设计
熟练掌握MVC 设计方法 熟练掌握数据库编程 深化了解API,深化基于API的编程 反复实践典型模式应用于项目的分析和设计
考核
基于典型项目的考察: 项目的分析与方案设计 UML典型图 项目代码中基本原则的应用 项目设计中模型的使用
OOP编程要点
OOP 典型特点 : 封装性、继承性、重载、属性和修饰符、多态、重构、抽象类 接口、集合、泛型、委托与事件
OOP追求的目标: 可用性、完整性、健壮性、有效性、可伸缩性、可读性、 可重用性、简洁性、可维护性、可扩充行
及其方法调用产生的副作用(而编写和 修改代码的时间却很少)
追求: 适应变化的体系结构
如何处理变化的需求?
变化总会发生的 改进开发过程,以便有效地应付需求的变
化 模式及其应用
对象的分界层
设计与实现的分界面
设计阶段: 目标:抽象、封装 方法:面向接口(抽象)编程
发现并封装变化点
抽象是一种上下层间概念上z)
接口隔离原则
使用者应该只知道接口
单一职责原则(SRP原则)
就一个类而言,应该只有一个引起它变化的原因;
失败的案例:
界面处理类+数据库操作+文件读写+业务流程控制 类比: 多功能手机、集成主板的电脑—坏一处就全坏
经验: 类的设计倾向于越小越好
解释:
相关主题