类图
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
|
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
| class A { + method() : ReturnType } class B { + method() : ReturnType } A <|-- B
|
实现关系
实现关系表现为继承抽象类
1 2 3 4 5 6 7 8
| interface A { + method() : ReturnType } class B { + method() : ReturnType } A <|.. B
|
聚合关系
与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在
1 2 3 4 5 6 7 8
| class A { + method() : ReturnType } class B { + method() : ReturnType } A o-- B
|
组合关系
1 2 3 4 5 6 7 8
| 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
|