UML类关系总结

来源:互联网 发布:银联数据 编辑:程序博客网 时间:2024/06/06 02:25

UML描述的类之间的关系主要有六种,分别是继承,实现,依赖,关联,聚合以及组合,并分别用各种不同的图案来表示。

1.继承

指类B(子类)继承类A(父类),并获得父类的功能,Java里面用extends关键字表示。
这里写图片描述

public class A {}public class B extends A{//类B继承类A}

2.实现

指类B实现了一个接口A,Java当中用implements关键字表示。
这里写图片描述

public interface A {    public void print();}public class B implements A {//实现A接口    @Override    public void print() {        System.out.println("B");    }}

3.依赖

可以理解为类A里面用到了类B,所以类A依赖于类B,这种关系是临时性的,很弱的一种关系。在代码上的表现为类B作为参数在类A当中使用。
这里写图片描述

public class B {}public class A {    public void print(B b) {//依赖与类B    }}

4.关联

比依赖的关系要强,属于长期性的,双方的关系是平等的。在代码上的表现是类B作为类A的属性出现。
这里写图片描述

public class B {}public class A {    public B b;//作为A的属性}

5.聚合

表现的是整体与部分的关系,整体和部分可以分离,比如一个家庭拥有两个小孩,家庭和小孩之间就是聚合关系。代码表现上和关联关系一样,只能通过语义来分别。图片中类A表示家庭,类B表示孩子。
这里写图片描述

public class Child {}public class Family {    public List<Child> children;//聚合关系}

6.组合

表现的也是整体和部分的关系,整体和部分不可分离,整体和部分拥有相同的生命周期,比如一个人拥有一个脑袋,人和脑袋就是组合关系。代码表现上和关联关系一样,也只能通过语义来分别。图中类A表示人,类B表示脑袋。
这里写图片描述

public class Brain {}public class Person {    private Brain b;//组合关系}

总结

这六种关系当中,继承和实现是最好判断的,另外剩余的这四中关系,其关系强度为 组合>聚合>关联>依赖 。

原创粉丝点击