0%

UML-PlantUML

类图

1
2
3
4
class Student
abstract class Student
interface Person
enum Gender { MALE, FEMALE }
1
2
3
4
5
6
7
8
9
10
//方法属性
//+:public
//-:private
//#:protected
class ClassName {
+ attribute1 : Type1
# attribute2 : Type2
- method1() : ReturnType1
+ method2(param1:Type1, param2:Type2) : ReturnType2
}

类之间关系

泛化关系

继承非抽象类
继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示

1
2
3
4
5
6
7
8
//B继承自A
class A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A <|-- B

实现关系

实现关系表现为继承抽象类

1
2
3
4
5
6
7
8
//B继承自A
interface A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A <|.. B

聚合关系

与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在

1
2
3
4
5
6
7
8
//B聚合到A上,或者说A由B组成
class A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A o-- B

组合关系

1
2
3
4
5
6
7
8
//说A由B组成
class A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A *-- B

关联关系

描述不同类的对象之间的结构关系
比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系
关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示B知道A,但 A不知道B

1
2
3
4
5
6
7
class A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A <-- B

依赖关系

一种临时性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化
一个对象在运行期间会用到另一个对象的关系
应该保持单向依赖,杜绝双向依赖的产生

1
2
3
4
5
6
7
class A {
+ method() : ReturnType
}
class B {
+ method() : ReturnType
}
A <.. B