1、类图基本概念
类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型
2、类图组成部分
类图分为三层
- 第一层为类名,如果是抽象类则用斜体显示,是接口有interface标记
- 第二层是类的特性,通常是属性或字段
- 第三层是类的操作,通常是方法或行为
属性和方法前的符号:"+“表示public,”-“表示private,”#"表示protected
属性的完整表达形式:可见性 名称 :类型 [ = 缺省值]
方法的完整表达形式:可见性 名称(参数列表) [ : 返回类型]
3、关系详解
3.1 泛化(generalization):**对应java中extends关键字,表示"is-a"关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。在类图中使用带三角箭头的实线表示,箭头从子类指向父类
3.2 实现(Realization):**对应java中implements关键字,就是接口和实现的关系。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口
3.3 依赖(Dependency):**对象之间最弱的一种关联方式,是临时性的关联。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
class Cat{
public 新陈代谢(氧气, 水){
}
}
3.4 关联(Association) 😗* 对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向和双向。
class Customer{
// 持有订单对象
private Order order;
}
3.5 聚合(Aggregation) 😗* 表示has-a的关系,表示一种弱的拥有关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司。在类图使用空心菱形表示,菱形一端为整体。
class Company{
// 在公司中持有员工集合对象
private List<Employee> employees;
}
3.6 组合(Composition) 😗* 表示contains-a的关系,是一种强的拥有关系,体现了严格的部分和整体关系,部分和整体的生命周期一样,部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了。在类图使用实心菱形表示,菱形一端为整体。
class Company{
private Department department;
public Company(){
// 初始化公司时实例化部门,它们之间同时生成
department = new Department();
}
}