软件工程笔记八__面向对象
1 面向对象方法四要点
(1)对象:客观世界有各种对象组成,任何事物都是对象,比如一支笔,一张纸,复杂的对象可由简单的对象以某种方式组合而成。对象分解取代功能分解
(2)类:把所有对象都划分为各种对象类,每个对象类都定义了一组数据和一组方法。数据用于表示对象静态属性,是对象的状态信息。
(3)继承:按照子类与父类的关系,把若干个对象类组成一个层次结构的系统
(4)消息:对象之间仅能通过传递消息互相联系。对象是处理消息的主体。
2 面向对象方法优点
(1)与人类习惯的思维一致
(2)稳定性好
(3)可重用性好
(4)易开发大型软件产品
(5)可维护性好
3 面向对象建模
用面向对象方法开发软件,需要建立三种模型
(1)对象模型:描述系统数据结构
(2)动态模型:描述系统控制结构
(3)功能模型:描述系统功能
3.1 对象模型
通常使用UML类图来建立对象模型
定义类
定义属性的语法格式: 可见性 属性名:类型名 = 初值{性质串}
可见性有三种:
+: 共有(public),可被其他外部对象访问
-:私有(private),只有自己可以访问
#:保护(protected),只有本类及其子类的对象可访问
定义服务的语法格式:可见性操作名(参数表):返回值类型{性质串}
参数表:类型名 = 默认值
类与类之间有四种关系
(1)关联
1)普通关联
只要类与类之间存在连接关系,就可以用普通关联,符号为直线,
关联是双向的,可在每个方向上为关联取一个名字,加上表示方向的黑三角形。直线两端可以写上重数,表示该类有多少个对象与对方的一个对象连接。未标明则默认为1
一个作家可以用一到多台计算机,而一台计算机可被0到多个作家使用
2)关联的角色
在任何关联中都会涉及此关联对象所扮演的角色即发挥的作用,标明角色名有助于理解类图
3)限定关联
通常用在一对多或多对多的关联关系中,可以把重数从多对多简化为多对一,或从一对多变成一对一
(2)聚集
类与类之间的关系是整体和部分的关系
1)共享聚集
部分方可以参与多个整体方
2)组合聚集
部分方和整体方共存,整体不在了,部分也会随之消失
(3)泛化(继承)
1)普通泛化
2)受限泛化
有四种约束:多重、不相交、完全和不完全
多重
不相交
与多重相反,一个子类不能多次继承同一基类
完全
父类的所有子类都已在类图中穷举了
不完全
父类的所有子类并没有穷举完
(4)依赖和细化
依赖
细化
描述同一事物,但抽象层不同
3.2 动态模型
表示瞬时的、行为化的系统的“控制”性质
用状态图表示
3.3 功能模型
表示系统功能性质
用UML用例图建立功能模型
方框代表系统,用来提供用例
椭圆代表用例,代表被行为者感受到、系统的一个完整功能
行为者,与系统交互的人或其他系统,代表外部实体
4 三种对象关系
功能模型指明系统应该做什么;
动态模型明确规定什么时候做;
对象模型定义了做事情的实体。