UML常见关系图,依赖、关联等
首先类之间的关系从宏观上可以分为:关联、依赖、继承(泛化),而其中关联又有两种特例:聚合和组合,不过在UML2.X中聚合和组合合成一种关系了。
从使用的频率来看,关联(包括聚合和组合)关系是使用最为广泛的;其次是依赖和继承
Association 关联(双向的) 和 DirectedAssociation 关联(单向的)
关联是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。
//class A与B关联
public class A{
private B b;
}
//如果B也关联到A,那么它们就是双向的关联
public class B{
private A a;
}
驾驶人和车 (单向)
Aggregation 聚合
是关联关系的一种,是强的关联关系。聚合是整体与个体之间的关系。如汽车类与引挚类,轮胎类之间的关系就是整体与个体的关系。关联关系所涉及的两个类是处于同一层次上的,而在聚合关系中,两个类处在不平等的层次上的,一个代表整体,一个代表部分。(关联与聚合仅仅从语法上是区分不开的,需要察所涉及的类之间的逻辑关系。)
车和轮子
Composition 合成(组成)
是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表的对象负责代表部分的对象的生命周期,合成关系是不能共享的。 代表部分的对象在每一个时刻只能与一个对象发生合成关系,由后者排它的负责其生命周期。
人和手臂
Generalization 继承
继承
Dependency 依赖
是类与类之间的连接,依赖总是单向的。依赖关系代表一个类依赖于另一个类的定义。
//class A 依赖与class B、C、D。
public class A{
public B getB(C c, D d){
E e = new E();
B b = new B(c, d, e);
}
}
依赖和关联有很大不同
依赖只是这个类的方法接收依赖另外的类,和关联不同
Realization 实现
实现