UML基本介绍
- UML(Unified modeling language)统一建模语言,是一种用于软件系统分析和设计的语言工具。它用于帮助软件开放人员进行思考和记录思路的结果。
- UML本身是一套符号规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和她们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。
- Idea中,可以使用 PlantUML 插件画UML图形。
UML 关系
1. 依赖关系
依赖关系是一种使用关系,表示某个类依赖于另一个类通常表现为,某个类的方法参数使用了另外一个类的对象。依赖关系用带箭头的虚线表示,箭头从使用类指向被依赖的类。
@startuml
class Person {
void print(IDCard idCard)
}
class IDCard{
}
note "依赖关系" as N1
N1 ..Person
N1 ..IDCard
IDCard <.. Person
@enduml
2. 关联关系
关联关系是对象之间的一种引用关系,表示一个类和另一个类之间的一种引用关系。关联关系分为双向关联和单向关联关系。双向关联关系以一条实线或者带有左右两个箭头的实线表示。单向关联关系为带有一个箭头的实线。从引用的一方指向被引用的一方。
@startuml
class Student {
- List<IDCard> teachers;
- List<Course> courses;
}
class Teacher {
- List<Person> students;
}
class Course {
}
note "两个类相互引用" as N1
N1 ..Student
N1 ..Teacher
Student -- Teacher
Student --> Course
@enduml
3 泛化关系
泛化关键就是父子类之间的继承关系。在UML类图中用带空心三角箭头的实线表示。
@startuml
class PersonServiceBean {
+ void delete(Integer id)
}
abstract class DaoSupport {
+ void save(Object e)
+ void delete(Integer id)
}
DaoSupport <|-- PersonServiceBean
note "泛化即继承关系" as N1
DaoSupport ..N1
N1 ..PersonServiceBean
@enduml
4 实现关系
实现关系就是类与接口之间的关系,类需要实现接口中的方法。在UML类图中用带空心三角箭头的虚线表示。
@startuml
class PersonServiceBean {
+ void delete(Integer id)
}
interface PersonService {
+ void delete(Integer id)
}
PersonService <|.. PersonServiceBean
note "实现关系" as N2
PersonService ..N2
N2 ..PersonServiceBean
@enduml
5. 组合关系
组合关系是一种同生共死的关系,是关联关系的一种。比如电脑不能脱离显示器而单独存在。在UML类图中是用带实心菱形的实线表示。菱形指向整体。
@startuml
class Computer {
- Mouse mouse
- Monitor monitor
+ void setMouse(Mouse mouse)
+ void setMonitor(Monitor monitor)
}
note top: 组合关系是同生共死的关系
Computer *-- Mouse
Computer *-- Monitor
@enduml
6 聚合关系
聚合关系也是关联关系的一种。表示整体与部分的关系。与组合关系的区别在于:聚合关系的部分可以脱离整体而单独存在。如公司和员工。员工是公司的一部分,但同时员工也是独立的个体。在UML类图中,用带空心菱形的实线表示聚合关系。菱形指向整体。聚合关系在类中通常是通过成员对象来体现的。
@startuml
class Corporation {
- List<Employee> employee;
}
Corporation o-- Employee
@enduml