没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
OOAD
OOAD
OOAD
OOAD
与 UML
UML
UML
UML
---------author:Lujianyu
---------author:Lujianyu
---------author:Lujianyu
---------author:Lujianyu
一、基本内容:
OOA/D
OOA/D
OOA/D
OOA/D
面向对象的分析与设计。 方法论、哲学; 架构师、项目经理、设计人员
OOA
OOA
OOA
OOA
—— Object Oriented Analysis
面向对象的分析,以业务为中心来分析解决问题,不涉及求解方案。 (问题空间)
OOD
OOD
OOD
OOD
—— Object Oriented Design
面向对象的设计,计算机世界来体现现实世界。 (解空间)
UML
UML
UML
UML
—— 统一建模语言。 是一种图形化的语言, 它可以帮助我们在 OOAD 过程中标识元
素、
构建模块、分析过程并可通过文档说明系统中的重要细节。 (外企注重 UML )
面向对象的好处: 让分析阶段和设计阶段平滑地过渡。 可以用解决日常问题的思路来解决 计
算机世界的问题。
二、开发过程:
1
1
1
1
.瀑布模型
特点:用户需求一改,过程从上到下不可逆。
适合于小项目。一般不推荐使用。
2
2
2
2
.统一开发过程( USDP
USDP
USDP
USDP
)
由 Retional 公司(已经被 IBM 收购)提出。
特点:
大项目分解为一些子项目 —— 用例
使用 UML 工具
统一软件开发过程是一个迭代、递增的开发过程
每一次迭代均会越来越接近最终目标
① 初试 ② 构造 ③ 细化 ④ 提交 四个阶段:
说明:图中蓝色部分面积表示工作量;
第一次迭代需求等过程比较多;
第二次迭代分析、设计、实现过程较多;
第三次迭代 …
每次迭代都有各自重点。一般一次迭代持续 2 周左右。
需求
分析
设计
实现
测试
时间顺序
Requirements
Requirements
Requirements
Requirements
Analysis
Analysis
Analysis
Analysis
Design
Design
Design
Design
Implementation
Implementation
Implementation
Implementation
Test
Test
Test
Test
这种方式的优点:过程中需求的改变不会影响到整体项目开发,项目控制比较灵活。
降低成本
便于更好地维护项目进度
便于团队的协作开发
便于适应用户需求的动态变化
80/20 原则:把 80% 的精力花在 20% 的重点上。
三、 OO
OO
OO
OO
设计:
1
1
1
1
. OOP
OOP
OOP
OOP
的主要特征
( 1 ) 、抽象:对现实生活中的建模。
( 2 ) 、封装:控制对象的边界以及控制对象对外的接口;
封装使我们对边界内部代码的修改不会影响到边界外部代码的实现。
( 3
) 、继承:
is
a 关系。 从一般到特殊,表现了一种分类关系。
( 4 ) 、多态:一种行为在不同的条件下会表示出不同的行为方式。
编译时多态,即方法的重载,屏蔽方法的差异;
运行时多态,也叫引用多态,屏蔽子类的差异。
( 5 ) 、关联:一个对象通过另一个对象的 引用 来使用该对象的方法。 (重点)
( 6 ) 、聚合:一个对象是另外一个对象的组成部分(如:班级学生) 。
( 7 ) 、组合:外部对象不存在时,内部对象随之消失。是一种最强的关联关系。 (如:人与
手) 。
( 8
) 、内聚与耦合。
力求高内聚,低耦合。
2
2
2
2
.关联关系 (重点)
( 1
1
1
1
) 、方向性:
单向关联: 双向关联: ( 你中有我,我中有你 )
( 2
2
2
2
) 、多重性:
多对多关联一定是双向关联。比如一个人有多台电脑,一台电脑可以给多个人,即双向
多对多关联。
在面向对象中,最常见的是一对多关系 最好用集合来表示:
class
class
class
class
Student{
Student{
Student{
Student{
List<Teacher>
List<Teacher>
List<Teacher>
List<Teacher>
list;
list;
list;
list;
//
//
//
//
用集合表示一对多关系
}
}
}
}
( 3
3
3
3
)关联分为两种:
关联更有利于描述对象关系,而聚合更利于区分内部对象与外部对象。
① 聚合( has
has
has
has
a
a
a
a
)
又分为 一般聚合 和 组合 ( 狭义的关联)出现的场合很多
组合 —— 外部对象负责管理内部对象的生命周期
/*
/*
/*
/*
例子:人和手 是组合关系 手是人的附属品 最强的 has
has
has
has
a
a
a
a
人 (外部对象生命周期)
手 (内部对象生命周期)
*/
② 依赖( use
use
use
use
a
a
a
a
)
用例子区别: 依赖、聚合、组合
人 和 车
A.
租车(依赖关系) 车还后,就没有车的引用了;
B.
买车(聚合关系) 不负责管理车的生命周期;
C.
人挂了,车也一起埋了(组合) 完全的附属品。
Class
Class
Class
Class
A{
A{
A{
A{
B
B
B
B
b;
b;
b;
b;
}
}
}
}
Class
Class
Class
Class
B{
B{
B{
B{
A
A
A
A
a;
a;
a;
a;
}
}
}
}
Class
Class
Class
Class
A{
A{
A{
A{
B
B
B
B
b;
b;
b;
b;
}
}
}
}
Class
Class
Class
Class
B{
B{
B{
B{
…
…
…
…
}
}
}
}
VS
VS
VS
VS
class
class
class
class
Student{
Student{
Student{
Student{
Teacher[]
Teacher[]
Teacher[]
Teacher[]
t;
t;
t;
t;
//
//
//
//
一对多
public
public
public
public
Student(Teacher
Student(Teacher
Student(Teacher
Student(Teacher
t){
t){
t){
t){
this.t=t;
this.t=t;
this.t=t;
this.t=t;
}
}
}
}
}
}
}
}
class
class
class
class
Teacher{
Teacher{
Teacher{
Teacher{
Student[]
Student[]
Student[]
Student[]
s;
s;
s;
s;
//
//
//
//
多对多
public
public
public
public
void
void
void
void
study(){
study(){
study(){
study(){
}
}
}
}
}
}
}
}
我让你做事情,就是调用了你的
方法,那么就说我关联了你;
我为什么能让你做事情呢?因为
我有你的引用, 你的引用在我这里 是
个属性,换句话说,
“ 我有你
”
,那
么
就是聚合;
如果你的引用在我这里是个局部
变量,就是说 “ 我用你
”
,就是依赖 ;
如果我消失了,你也就跟着消失
了, 也就是说, 你是我的一个组成 部
分, 那就是组合, 这是最强的一种 关
联,是聚合的特殊形式。
剩余14页未读,继续阅读
sdust_lsyy
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- database-project-massunaAi笔记
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- python196基于循环神经网络的情感分类系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0