UML类图
常用的类图元素
-
电脑类图结构为
<<abstract>>
,表示电脑是一个抽象类
; -
电脑类有两个继承类分别为平板电脑和台式电脑,电脑类与两个继承类之间的关系为
实现关系
,使用空心箭头的虚线
表示; -
平板电脑与MetePad Pro之间也是继承关系的一种,它们之间的关系为
泛化关系
,使用空心箭头的实线
表示; -
平板电脑、CPU和屏幕是
组合关系
使用实心菱形箭头的实线
表示; -
员工工作需要用到台式电脑,员工与台式电脑是
依赖关系
使用箭头的虚线
表示; -
员工与工号是
关联关系
,使用一根实线
表示; -
员工与公司是
聚合关系
,使用空心菱形箭头的实线
表示;
UML类图的应用
创建型模式
简单工厂模式
类图说明
- Product有两个继承类ConcreteProductA和ConcreteProductB,Product与两个继承类是
实现关系
,使用实心箭头的虚线
连接。 - Factory与ConcreteProduct是
依赖关系
,使用箭头的虚线
连接。
工厂方法模式
类图说明
- Product有一个继承类ConcreteProduct,Product与继承类是
实现关系
,使用空心箭头的虚线
连接。 - Factory有一个继承类ConcreteFactory,Factory与继承类是
实现关系
,使用空心箭头的虚线
连接。 - ConcreteFactory与ConcreteProduct是
依赖关系
,使用箭头的虚线
连接。
抽象工厂模式
类图说明
- ProductA有两个继承类ConcreteProductA和ConcreteProductB,Product与继承类是
实现关系
,使用空心箭头的虚线
连接。 - Factory有两个继承类ConcreteFactoryA和ConcreteFactoryB,Factory与继承类是
实现关系
,使用空心箭头的虚线
连接。 - ConcreteFactoryA、ConcreteProductA和ConcreteProductB是
依赖关系
,使用箭头的虚线
连接。
建造者模式
类图说明
- Director负责获得并管理所有Builder的实现类,Director与Builder的实现类是
聚合关系
,使用空心菱形箭头的实线
连接。 - Builder有一个继承类ConcreteBuilder,Builder与继承类是
实现关系
,使用空心箭头的虚线
连接。 - Product和ConcreteBuilder是
依赖关系
,使用箭头的虚线
连接。
单例模式模式
类图说明
- Singleton在自己类内部维护一个自己的实例是
聚合关系
,使用空心菱形箭头的实线
连接。
结构型模式
适配器模式
类图说明
- Client和Target是
依赖关系
,使用箭头的虚线
连接。 - Adapter和Target是
泛化关系
,使用空心箭头的实线
连接。 - Adapter和Adaptee是
组合关系
,使用实心菱形的实线
连接。
桥接模式
类图说明
- Client和Abstraction是
依赖关系
,使用箭头的虚线
连接。 - RefinedAbstraction继承自Abstraction是
泛化关系
,使用空心箭头的实线
连接。 - Implementor和Abstraction是
组合关系
,使用实心菱形箭头的实线
连接。 - Implementor有两个继承类ConcreteImplementorA和ConcreteImplementorB,Implementor与继承类是
实现关系
,使用空心箭头的虚线
连接。
装饰模式
类图说明
-
Component有两个继承类ConcreteComponent和Decorator,Component与继承类是
泛化关系
,使用空心箭头的实线
连接。 -
Decorator与父类Component同时是
聚合关系
,使用空心菱形箭头的实线
连接。 -
Decorator有两个继承类ConcreteDecoratorA和ConcreteDecoratorB,Decorator与继承类是
泛化关系
,使用空心箭头的实线
连接。
门面模式
类图说明
-
Client与Facade是
依赖关系
,使用箭头的虚线
连接。 -
Facade与SubSystemA、SubSystemB、SubSystemC是
关联关系
,使用一根实线
连接。
享元模式
类图说明
-
Flyweight有一个继承类ConcreteFlyweight,与该继承类是
实现关系
,使用空心箭头的虚线
连接。 -
FlyweightFactory与Flyweight是
聚合关系
,使用空心菱形箭头的实线
连接。
代理模式
类图说明
-
Subject有两个继承类Proxy和RealSubject,Subject与该继承类是
泛化关系
,使用空心箭头的实线
连接。 -
Proxy和RealSubject是
组合关系
使用实心菱形箭头的实线
连接。
结构型模式
命令模式
类图说明
-
Client、Receiver和ConcreteCommand之间是
关联关系
,使用一根实线
连接。 -
Client和ConcreteCommand同时是
依赖关系
,使用箭头的虚线
连接。 -
Command有一个继承类ConcreteCommand,Command与继承类之间是
实现关系
,使用空心箭头的虚线
连接。 -
Invoker与Command是
聚合关系
,使用空心菱形箭头的实线
连接。
中介者模式
类图说明
-
Client、Receiver和ConcreteCommand之间是
关联关系
,使用一根实线
连接。 -
Client和ConcreteCommand同时是
依赖关系
,使用箭头的虚线
连接。 -
Command有一个继承类ConcreteCommand,Command与继承类之间是
实现关系
,使用空心箭头的虚线
连接。 -
Invoker与Command是
聚合关系
,使用空心菱形箭头的实线
连接。
观察者模式
类图说明
-
Subject有一个继承类ConcreteSubject,Subject与该继承类是
泛化关系
,使用空心箭头的实线
连接。 -
Subject和Observer是
聚合关系
,使用空心菱形箭头的实线
连接。 -
Observer有一个继承类ConcreteObserver,Observer与继承类之间是
实现关系
,使用空心箭头的虚线
连接。
状态模式
-
类图说明
-
State有两个继承类ConcreteStateA和ConcreteStateB,State与该继承类是
实现关系
,使用空心箭头的虚线
连接。 -
Context和State是
聚合关系
,使用空心菱形箭头的实线
连接。
策略模式
类图说明
-
Strategy有两个继承类ConcreteStrategyA和ConcreteStrategyB,Strategy与该继承类是
泛化关系
,使用空心箭头的实线
连接。 -
Context和Strategy是
聚合关系
,使用空心菱形箭头的实线
连接。