1.面向对象方法学的要点
- 认为客观世界是有各种对象组成的。
- 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
- 按照子类与父类(派生类与基类)的关系,把若干个对象组成一个层次结构的系统。
- 对象彼此之间仅能通过传递消息互相通信。
2.面向方法学主要优点
- 与人类思维方法一致
- 稳定性好
- 可重用性
- 较易开发大型软件结构
- 可维护性好
3.面向对象建模
需要建立3 种形式的模型:
- 描述数据结构的对象模型
- 描述系统控制结构的动态模型
- 描述系统功能的功能模型
4.对象模型
对象模型表示静态的、结构化的系统的数据性质。是对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。
对象模型为建立动态模型和功能模型,提供了实质性的框架。
通常使用统一的建模语言(UML)所提供的类图来建立对象模型。
类图
类图描述类及类与类之间的静态关系。类图是一种静态模型。
类的名字、属性和操作。分别放上、中、下三层。
类名不可省略。
UML描述属性的语法格式:
可见性 属性名: 类型名 = 初值
可见性: 公有的(+)、私有的(-)、保护的(#)
UML描述操作的语法格式:
可见性 操作名(参数表): 返回值类型
类图中的六大关系
关联关系、聚集关系、组合关系、泛化关系、依赖关系、细化关系
关联关系
直线连接
直线的两端可以写上重数,表示该类有多少个对象与对方的一个对象连接。
重数的表示方法:
0… 1 表示0到1个对象
0… * 或者 * 表示0到多个对象
1+ 或者 1… * 表示1到多个对象
1… 15 表示1到15个对象
3 表示3个对象
聚集关系
直线+空心菱形 整体类的地方画一个空心菱形
整体和部分可以分开
例如:一个课题组包含了许多人员,而每个成员还可以参加别的课题组。人员离开了这个课题组还可以参加别尔德课题组。
组合关系
直线+实心菱形 整体类紧挨实心菱形
整体和部分不可分开 整体和部分共存 整体不在部分也就不存在了
泛化(继承)关系
空心三角形 + 直线 三角形的顶角紧挨着通用元素
依赖关系
不独立的模型依赖于独立的模型
带箭头的虚线 箭头指向独立的类
出现以下任一情况,就说A类依赖B类:
- A类用到了B类
- A类中有B类的成员变量
- B类是A类方法的参数类型
- B类是A类方法的返回类型
- A类中的方法用到了B类
细化关系
空心三角+虚线