引用文章
继承、实现:
https://www.cnblogs.com/xrq730/p/5527115.html
关联、聚合、组合、依赖:
继承
继承也叫作泛化(Generalization),用于描述父子类之间的关系,父类又称为基类或者超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的实线来表示。
public abstract class Person {
void operation(String param);
}
public class Student extends Person {
private String name;
public void operation(String param){
}
}
public class Teacher extends Person {
private String name;
public void operation(String param){
}
}
PlantUML
@startuml
title Generalization
class Person
class Student
class Teacher
Person <|-- Student
Person <|-- Teacher
@enduml
实现
public interface Animal {
void eat();
}
public class Dog implements Animal {
private String name;
public void eat(){
}
}
public class Cat implements Animal {
private String name;
public void eat(){
}
}
PlantUML
@startuml
title Realization
interface Animal
class Dog
class Cat
Animal <|.. Dog
Animal <|.. Cat
@enduml
聚合
表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。
@startuml
title Aggregation
class Computer
class Keyboard
class Mouse
class Screen
Computer o-- Keyboard
Computer o-- Mouse
Computer o-- Screen
@enduml
组合
@startuml
title Composition
class Company
class DepartmentA
class DepartmentB
Company *-- DepartmentA
Company *-- DepartmentB
@enduml
关联
@startuml
title Association
class School
class Student
School "1" - "n" Student
@enduml
依赖
@startuml
title Dependency
class Vehicle {
move(MoveBehavior)
}
interface MoveBehavior {
move()
}
note "MoveBehavior.move()" as N
Vehicle ..> MoveBehavior
Vehicle .. N
@enduml