UML中的类图

在UML中,描述两个类之间的关系,按照关系的强弱分为,实现=泛化>组合>聚合>关联>依赖。

这六种关系,是存在于UML中的概念,请不要和Java中的混淆。例如,UML中的组合,与Java中的组合,含义是不一样的。

类图是依赖于语言的,不同语言可能存在差别。

1、实现

实现:描述java中的implements。UML中用虚线和空三角表示。

在Java中表示:

class Fruit {}
class Apple implements Fruit {}

在UML中表示:

2、泛化

 泛化:泛化描述的是Java中,继承的关系。UML中,用实线和空三角表示。

在Java中表示

class Fruit {}
class Apple extends Fruit {}

 在UML中表示

3、组合、聚合、关联

这三种关系描述的都是,Java中的组合关系,即一类的定义中有另一类的引用。

但是,这三种组合关系是有区别的。

组合:关系最强,代表整体和部分的关系,且要求代表整体的类的对象,对代表部分的类的对象的生命周期负责,整体对象被垃圾回收期清理, 部分对象就不能够单独存在。

Java中表示:代表人的对象被清理,代表身高信息的对象就不可以存在了。(例子不是很恰当,但是这个道理)

class Hight {}
class Person {
    Hight h;
}

 UML表示:软件不同可能有不同的表示,总之有个实心菱形。

聚合:关系较弱,代表整体和部分的关系,没有生命周期的要求,代表整体的对象被清理,代表部分的对象仍然可以存在。

Java表示:部门被撤销了被,人员还在啊,还可以分配到别的部门

class Person {}
class Department {
    Person p;
}

UML表示:软件不同可能有不同的表示,总之有个空心菱形。

 

关联:关系最弱,不要求整体和部分的关系。

Java中表示:

//单向关联
class A {}
class B {
    A a;
}
//双向关联
class A {
    B b;
}
class B {
    List<A> l;
}

 UML表示:

 

3、依赖

依赖:描述Java中,类中的方法参数、局部变量的引用类型与本类关系。

Java表示:

class A {}
class B {
    void f() {
       A a;
     }
}

 UML表示:

 

附上参考的两篇博客

[1]UML类图符号 各种关系说明

[2]解析UML类图符号意义

 

posted @ 2019-09-18 20:46  卑微芒果  Views(467)  Comments(0Edit  收藏  举报