面向对象方法学概述
面向对象的概念
对象
面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。
对象的特点:
- 1.以数据为中心
- 2.对象是主动的
- 3.实现了数据封装
- 4.本质上具有并行性
- 5.模块独立性好
其他概念
- 类
- 实例
- 消息(消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明)
- 方法
- 属性
- 封装
- 继承
- 多态性(子类对象可以像父类对象那样使用)
- 重载
面向对象建模
建模:就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面表达。
用面向对象的方法开发软件,通常需要建立3种形式的模型,,分别是
- 1.描述系统数据结构的对象模型
- 2.描述系统控制结构的动态模型
- 3.描述系统功能的功能模型
一个典型的软件系统组合了上述3方面的内容:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)
对象模型
对象模型表示静态的、结构化的系统的“数据”性质。 使用UML提供的类图来建立对象模型
类图的基本符号
定义类
UML类的符号为长方形,两条横线分为三个部分。
定义属性
UML描述属性的语法格式如下:
可见性 属性名:类型名=初值{性质串}
可见性:用+ - # 表示 public private protected ,若未声明,则表示该属性的可见性未定义
属性名和类型名用:分割
{}里表示可的取值
定义服务
服务也就是操作,UML描述操作的语法格式如下:
可见性 操作名(参数名):返回值类型{性质串}
表示关系的符号
关联
例如:读者借阅图书,或者读者预定图书。
关联表示两个类的对象之间存在某种语义上的联系
- 普通关联(最常见的关系)
- 关联的角色(一个人与另一个人结婚,必然一个扮演丈夫的角色,一个扮演妻子的角色)
- 限定关联(一个目录有许多文件,一个文件仅属于一个目录,在一个目录内文件名确定了唯一一个文件)
- 关联类(说明关联的性质,可能需要一些附加信息)
聚集
聚集也成为集合,是关联的特例。
聚集表示类与类之间的关系是整体与部分的关系。
除了一般聚集,还有两种特殊的聚集关系,分别为共享聚集和组合聚集。
- 共享聚集:一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是共享聚集关系。聚集和共享聚集都是在紧挨者整体类的直线后画一个空心菱形。
- 组合聚集:如果部分类完全隶属于整体类,部分与整体共存。组成关系用实心菱形表示。
泛化
UML的泛化关系就是继承关系。
用空心三角表示
依赖
动态模型
动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。
UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为。
功能模型
功能模型表示变化的“功能”性质,它指明了系统应该“做什么”。
通常功能模型由一组数据流图组成。
UML提供的用例图也是进行需求分析和建立模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型。
用例图
一副用例图包含的模型元素有系统、行为者、用例及用例之间的关系。
方框表示系统,椭圆表示用例,线条人表示行为者,连线表示关系
3种模型之间的关系
相互补充,相互配合
功能模型指明了系统应该“做什么”
动态模型明确了规定了什么时候做
对象模型则定义了做事情的实体