
类
在UML的类图中对象类通常使用以下形式表示:
Student类
class Student{
private:
int age;
string name;
public:
void Study(){...}
void Eat(string food){...}
void Sleep(){...}
}
属性:
基本格式:可见性 属性名: 类型 [= 默认值]
可见性: 分为Public(+)、Protected(#)、Private(-)
默认值可省略
方法:
基本格式:可见性 方法名(参数 : 参数类型) [: 返回类型]
可见性:与属性定义相同
参数:可选项,多个参数之间通过,进行分隔
返回值:可选项,多个返回类型之间通过,分隔
类之间的关系
类与类之间的关系基本可以归为6类:继承、实现、依赖、关联、聚合、组合
继承关系
继承
通过使用带三角箭头的实线将两个类连接起来, 由子类指向父类表示继承关系
子类可继承父类的所有方法和属性,并根据需要自由的进行扩展
class Human {
private:
int age;
string name;
public:
Eat(string food){...}
Sleep(){...}
}
class Student: public Human{
private:
int age;
string name;
public:
void Study(){...}
}
实现关系
实现
通过使用带三角箭头的虚线将类与接口/抽象类进行连接,表示类实现了接口/抽象类所定义的方法。
type Studier interface{
void Study()
}
class Student {
public:
void Study(){...}
void Sleep(){...}
...
}
依赖关系
依赖
依赖关系通过使用带箭头的虚线将两个类进行连接表示。
在代码中,通常使用参数表示依赖关系。
class Food {
...
}
class Student{
public:
void Eat(Food food){...}
...
}
关联关系
关联
关联关系通过使用带箭头的实线将两个类进行连接表示。
关联关系可以是单向关联(单向箭头)或双向关联(双向箭头),在代码中,通常使用成员变量表示关联关系。
class Book{
...
}
class Student{
private:
Book[] books
public:
void Study(Book[] book){...}
...
}
聚合关系
聚合
聚合关系使用带空心棱形的实线将两个类连接起来,菱形指向整体表示聚合关系。
聚合关系中整体是由多个对象组成的,而每个对象都有各自的生命周期。被聚合类在聚合类外进行创建,聚合类不负责创建,通过对外提供接口,由调用者通过接口传参进行成员的初始化。
class Student {
...
}
class Class {
private:
Student[] students;
public:
void Class(Student[] students){
this.students = students;
}
...
}
组合关系
组合
组合关系使用带实心棱形的实线将两个类连接起来,菱形指向整体表示组合关系。
两个类之间的关系相较于聚合关系更加紧密,组合类负责被包含类对象的创建和销毁,在代码中通常也表示为类的成员变量。
class Eye{
...
}
class Student{
private:
Eye eyes;
public:
void Eyes() {
eyes = new Eye()
}
...
}
6种类关系间的紧密程度由强到弱为:
继承 = 实现 > 组合 > 聚合 > 关联 > 依赖
参考:
https://my.oschina.net/jackieyeah/blog/224265
http://www.uml.org.cn/oobject/201012233.asp
本文使用CC BY-NA-SA 4.0协议许可
本文链接:http://404-notfound.com/UML类图/




近期评论