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){
}
}
综上所述,对于继承、实现这两种关系比较简单,他们体现的是一种类与类、或者类与接口间的纵向关系;这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;从后几种关系所表现的强弱程度来看,依次为:组合>聚合>依赖。
并不是很能理解组合和聚集的关系
时间: 2024-10-08 10:31:11