Java UML类图浅析

来源:互联网 发布:复旦金融硕士 知乎 编辑:程序博客网 时间:2024/06/10 16:35
A.类(Classes)

UML建模中的类包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。

属性和操作之前可附加一个可见性修饰符,加号(+)表示具有公共可见性,减号(-)表示私有可见性,#号表示受保护的可见性。省略这些修饰符表示具package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型。如下图:


B.接口(Interface)

UML建模中的接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型,表现和类相似。通常,根据接口在类图上的样子,就能知道与其他类的关系。


C.UML类图中类与类的关系

1.泛化(Generalization)

表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。

2.关联(Association)

对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

a、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。

b、关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

c、关联关系是通过使用成员变量来实现的。

3.依赖(Dependency)

[依赖]对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

a、依赖关系也是类与类之间的联结

b、依赖总是单向的。

c、依赖关系体现为局部变量、方法的参数或者对静态方法的调用。

4. 聚合(Aggregation)

当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

a、聚合关系是关联关系的一种,是强的关联关系。

b、聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。

c、聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。

d、关联与聚合仅仅从 Java 或 C++ 语法上是无法分辨的,必须考察所涉及的类之间的逻辑关系。

5.合成(Composition)

a、合成关系是关联关系的一种,是比聚合关系还要强的关系。

b、它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。


总结:

1、不同的关系采用不同的 UML 图例

2、对于聚合关系、合成关系,由于都是关联关系的一种,因此在不确定的情况下,可以用关联关系来描述它们。