UML类图
Contents
定义
UML即统一建模语言(Unified Modeling Language)
- 这种统一建模语言是由图表组成的。
- 常用的有:序列图、类图、状态图、对象图、组件图和部署图等
类之间的关系
泛化(Generalization)
- 在Java中也叫作继承关系
- 空心三角箭头
- Studen类,警察Policemen类,均继承自Person类

实现(Realization)
- Java中类与接口的实现关系
- 空心三角箭头加虚线
- 由于Student和Policeman都是职业,学生的职业就是学习,而警察的职业为保护人民。所有定义一个职业接口。

依赖(Dependence)
- 依赖关系是一种很弱的关系,一般是指一个类使用另一个类
- 带箭头的虚线
- 这里学生捡到钱交给警察叔叔,学生和警察叔叔就是一种依赖关系。
因为学生捡到钱给警察是一种偶然的事情,交给警察后他们之间就没有关系了。

关联(Association)
-
比较强的关系,他们的关系是比较持久的,稳定的(一个类作为另一个类的属性)
-
分单向关联和双向关联
-
单向关联:带箭头的实线


聚合(Aggregation)
- 特殊的关联关系(强调整体和部分的关系,部分可以脱离整体而存在)
- 带空心菱形的实线(其中菱形指向整体)
- 警察与制服的关系,制服也是警察的一部分,制服可以脱离警察而存在

组合(Composition)
- 特殊的关联关系(强调整体和部分的关系,部分无法脱离整体存在)
- 带空心菱形的实线(其中菱形指向整体)
- 学生用手捡钱,其中手就是学生的一部分,但是手不能脱离学生而单独存在

按关系强度:组合>聚合>关联>依赖。

- 图是用PlantUML画的
@startuml
interface ICareer {
+career()
}
class Persion {
-name:String
-age:Integer = 1
+setName(String name):void
+getName():String
+setAge(String age):void
+getAge():String
}
class Student {
+policeman:Policeman
+teacher:Teacher
+home:Home
+hand:Hand
+sendCoin()
}
class Hand {
}
class Home {
}
class Teacher {
+student:Student
}
class Policeman {
+uniform:Uniform
+receiveCoin()
}
class Uniform {
}
ICareer <|.down. Student:实现
ICareer <|.down. Policeman:实现
Persion <|-down- Student:继承
Persion <|-down- Policeman:继承
Student .> Policeman:依赖
Student -left> Home:单向关联
Student -left Teacher:双向关联
Student *-down- Hand:组合
Uniform -up-o Policeman:聚合
@enduml






