UML中描述对象和类之间相互关系的方式包括:依赖,关联,聚合,组合,泛化,实现等。 表示关系的强弱:组合>聚合>关联>依赖 相互间关系 聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。而关联与依赖的关系是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。 依赖(Dependency):虚线箭头表示依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示,箭头指向被依赖元素。 1、依赖关系也是类与类之间的联结
虚线加箭头 关联(Association):实线箭头表示关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。 1、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。
聚合(Aggregation):带空心菱形头表示聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体 has a 部分)的关系。uml中用带空心菱形头的实线表示,菱形头指向整体。 1、聚合关系是关联关系的一种,是强的关联关系。
组合(Composition):带实心菱形头的实线表示组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。 1、合成关系是关联关系的一种,是比聚合关系还要强的关系。 2、它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
一般是实心菱形加实线箭头表示 一般化关系(泛化和实现):表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化关系是子类指向父类的,或从实现接口的类指向被实现的接口,与继承或实现的方向相反。如下图所示: 一般化关系 泛化(Generalization):泛化(Generalization):通常所说的继承(特殊个体 is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线表示,箭头指向一般个体。 带空心箭头的实线线表示 泛化表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。 泛化关系表示类与类之间的继承关系,接口与接口之间的继承关系。 实现(Realization):空心箭头和虚线表示实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口。uml中用空心箭头和虚线表示,箭头指向定义约定的元素。 实现关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。 (原文来自:http://www.cnblogs.com/duanxz/archive/2012/06/13/2547801.html) |
|