UML类图中的几种关系总结

       UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)、实现(Realization)等。

依赖(Dependency)

A依赖B,表示A会使用B的行为或属性,但B不能使用A的行为、属性,那么A和B的关系是依赖关系。

uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。

演示样例代码 :

class B {
	public void doSth() {
		System.out.println("do sth in class b.");
	}
}

//
class A {
	public void doSthInA(B b) {
		b.doSth();
		// others
	}
}

泛化(Generalization)

就是通常所说的继承关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向被继承的类。

// 形状
class Shape {

}

// 方形继承自Shape
class Square extends Shape{

}

实现(Realize)

A定义一个约定,B实现这个约定,则B和A的关系是实现,B实现A。这个关系最经常使用于接口。因此A代表接口,

B代表实现接口A的详细类。uml中用空心箭头和虚线表示Realize关系。箭头指向定义约定(A)的元素。

演示样例代码  :

public interface Runnable {
    public abstract void run();
}

// 实现Runnable接口
public class Thread implements Runnable {
        @Override
    public void run() {
        // do sth
    }
}

关联(Association)

元素间的结构化关系,是一种弱关系,被关联的元素间通常能够独立存在。uml中用实线(单向关联带箭头)

表示Association关系。箭头指向被依赖元素。

每一个人都能够有书籍。可是书籍与人之间并不存在强关系,两者能够各自独立。

演示样例代码 :

class Book {

}

//
class People {
	// 学生能够独立于老师而存在
	List<Book> mBooks = new ArrayList<Book>();
}

聚合(Aggregation)

聚合是关联关系的一种特例,是强的关联关系;关联和聚会在语义上无法区分,仅仅能依据考察详细的逻辑来加以区分。

聚合关系表示部分和总体的关系 (
关联仅仅是表示单纯的依赖 ),部分能够独立于总体而存在。

UML中用带空心菱形头的实线

表示Aggregation关系,菱形头指向总体。

车轮属于车的一部分。但车轮能够独立于车存在。

代码演示样例 :

class Wheel {
}

class Car {
	List<Wheel> mWheels = new ArrayList<Wheel>();
}

组合(Composition)

组合是聚合关系的变种,表示元两者之间具有更强的聚合关系,它通常要求总体代表部分的生命周期。

假设是组合关系,部分(个体)不能独立于总体而存在。

UML中用带实心菱形头的实线表示Composition关系。

菱形头指向总体。

手是人体的一部分,可是手不能独立于人体而存在。

class Hand {

}

class People {
	List<Hand> mHands = new ArrayList<Hand>();
}

当中依赖(Dependency)的关系最弱,而关联(Association)。聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的总体与部分关系的关联。而组合是表明总体与部分之间有同样生命周期关系的聚合。

各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

參考推荐:

UML类图几种关系的总结

UML类图符号 各种关系说明以及举例

UML建模免费工具

时间: 2024-08-01 06:34:28

UML类图中的几种关系总结的相关文章

(转)UML类图中的6种关系

原文 继承:空心三角形箭头的实线,子类指向父类.代码中通常有extends关键字(Java). 实现:空心三角形箭头的虚线,实现类指向接口.代码中通常有implements关键字(Java). 关联:通常是类A中需要引用另一个类B的实例作为成员变量,表示类A需要“知道”类B.实线箭头,类A指向类B. 依赖:通常是类A中的方法需要类B的实例作为其参数或者变量,而类A本身并不需要引用类B的实例作为其成员变量.虚线箭头,类A指向类B. 聚合:通常是类A中需要包含另一个类B的实例或实例的集合,表示一种弱

UML类图常见的几种关系

关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 就是通常意义上的继承,是一般和特殊的关系,子类特化了父类的所有特征和行为,体现为成员变量和方法 使用符号:带空心三角箭头的实线表示,箭头指向父类 2. 实现(Realization) 定义和实现定义之间的关系,主要表现为接口和与实现类 使用符号:带空心三

UML类图中的六大关系:泛化、实现、依赖、关联、聚合、组合关系

UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 1.泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 2.实现 概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述 表示方法:空心三角形箭头的

UML类图中的六种关系

UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的. 在逻辑设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计的工作量. 下面介绍UML中六种关系: 1. 泛化(Generalization) 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在java中用来表示继承的关系. 表示:用实线空心三角箭头表示. 2. 实现(Realization) 概念:

【转载】UML类图中箭头和线条的含义和用法

文章转载自 http://blog.csdn.net/hewei0241/article/details/7674450 https://blog.csdn.net/iamherego/article/details/44802855 1.UML中关系 本节向大家学习一下UML箭头.线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条来实现. 关系 后面的例子将针对某个具体目的来独立地展示各种关系.虽然语法无误,但这些例子可进一步精

UML类图中的六种关系及实例【补充】

·继承和接口都比较常见,通过继承子类可以直接使用父类的(public,protected属性以及方法:而实现了Speakable接口的Person类必须定义其所有方法,包括speak()): ·依赖指的是某个类进行初始化或者实现特别的方法时,必须依赖其他特定对象:如上面例子中人必须依赖water和oxygen; ·组合跟聚合很容易搞混.但是好好理解一下还是不难区分的:上面例子中意思是教师(人)由手.脚组成(当然你还可以加上五官),而聚合指的是一个“大类”中包含多个一样的“小类”,比如一个班级有多

UML类图中的六种线条与六种关系

1.泛化(generalize) 实线空心三角箭头. 2.实现(realize) 虚线空心三角箭头. 3.聚合(aggregation) 实线空心菱形箭头. 4.组合(composition) 实线实心菱形箭头. 5.关联(association) 实线(直线),普通箭头("<",">")可选.如果强调方向,则加一个普通箭头.否则只需要一条实线. 6.依赖(dependency) 虚线普通箭头("<",">&qu

UML类图五种关系与代码的对应关系

转: UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系. 因为在生成代码的时候,这两个关系类都不会增加属性. (二)依赖关系图与代码的对应关系 (PS:依赖关系:Animal依赖于Water(动物依赖于水)) [csharp] view plaincopyprint? Public class Animal() { Public Animal(){} } Pub

UML类图的五种关系小结

UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系,是一种协助关系. 因为在生成代码的时候,这两个关系类都不会增加属性. (二)依赖关系图与代码的对应关系 动物类与水类的关系就是依赖关系,两者的存在关系有以下几种: 1 Water是Animal的全局变量,animal可以随处调用对象 2 Water是Animal的某个方法的局部变量 void Animal::Dr