UML中的关系

来源:互联网 发布:懒人眼镜 淘宝 编辑:程序博客网 时间:2024/06/07 03:39

UML中的关系

1、依赖(dependency)

ProductWorker--->Math表示ProductWorker依赖于Math从层次结构来看,这两个类是属于同一层的

这里写图片描述
依赖关系主要表现为方法的参数,静态方法的调用

public class ProductWorker{    private double baseSalary;    private int piece;    public ProductWorker(double baseSalary, int piece=0){        setBaseSalary(baseSalary);        setPiece(piece);    }    public void setBaseSalary(double baseSalary){        this.baseSalary = baseSalary;    }    public void setPiece(double piece){        setPiece(piece);    }    public double getSalary(int coe){//coe为计算工资的相关系数        return Math.sqrt((double)(coe*piece));    }}
上面的依赖关系是静态方法的调用, ProductWorker--->Math

2.1、关联(association)之聚集

聚集是has-a的关系,即一个类是另一个类的成员变量
这里写图片描述

2.2、关联(association)之组合

被组合对象的生命周期和组合对象的生命周期一样,一起被创建,且一起消亡

这里写图片描述

3、泛化(generalization)(即继承)

这里写图片描述

class Worker{    public void work();}class ProductWorker extends Worker{}

4、实现(realization)(即实现接口)

这里写图片描述

public class ProductWorker implements Comparable<ProductWorker>{    public int compareTo(E rhs){    }}
 综上所述,对于继承、实现这两种关系比较简单,他们体现的是一种类与类、或者类与接口间的纵向关系;这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;从后几种关系所表现的强弱程度来看,依次为:组合>聚合>依赖。 并不是很能理解组合和聚集的关系
1 1