欢迎来到天天文库
浏览记录
ID:37907907
大小:101.50 KB
页数:9页
时间:2019-06-02
《UML类图符号 各种关系说明以及举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、UML类图符号各种关系说明以及举例UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。·依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。·泛化(Generalization):通常所说的继
2、承(特殊个体iskindof一般个体)关系,不必多解释了。uml中用带空心箭头的实线表示Generalization关系,箭头指向一般个体。·实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,BrealizeA。这个关系最常用于接口。uml中用空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。·关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。·聚合(Aggregation):关联关系的一种特例,表示部分和整体(
3、整体hasa部分)的关系。uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。·组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合
4、是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。而关联与依赖的关系用一句话概括下来就是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。1.1.1依赖(Dependency):虚线箭头表示1、依赖关系也是类与类之间的联结2、依赖总是单向的。(#add注意,要避免双向依赖。一般来说,不应该存在双向依赖。)3、依赖关系在Java或C++语言中体现为局部变量、方法的参数或者对静态方法的调用。classPerson {
5、voidbuy(Carcar) { ... } } 虚线加箭头 1.1.2 关联(Association):实线箭头表示1、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。2、关联可以是双向的,也可以是单向的(#add还有自身关联)。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。3、在Java或c++中,关联关系是通过使用成员变量来实现的。 class徒弟{ }; class唐僧 { protected:list<徒弟>tdlist;}; 1.1.3 聚合(Aggregation):带空心菱
6、形头表示1、聚合关系是关联关系的一种,是强的关联关系。2、聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。3、聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。4、关联与聚合仅仅从Java或C++语法上是无法分辨的,必须考察所涉及的类之间的逻辑关系。class引擎 { }; class轮胎 { }; class汽车 { protected:引擎engine; protected:轮胎tyre[4]; }; 1.1.4 合成(Compo
7、sition):带实心菱形头的实线表示1、合成关系是关联关系的一种,是比聚合关系还要强的关系。2、它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。class肢 { }; class人 { protected: 肢 limb[4]; };一般是实心菱形加实线箭头表示一般化关系(泛化和实现):表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化关系是子类指向父类的,或从实现接口的类指向被实
此文档下载收益归作者所有