码迷,mamicode.com
首页 > 其他好文 > 详细

UML中的关系

时间:2015-06-16 11:14:21      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

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

UML中的关系

标签:

原文地址:http://blog.csdn.net/u012501262/article/details/46513897

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!