小解UML中关联、聚合、依赖(简易区分)

说明:本帖目的是使读者快速简易理解三者关系,并非详解概念,所以有难免疏漏之处(部分内容来源网络)。

一、相关概念

1.关联:关联关系(Association:类之间的联系,如客户和订单,每个订单对应特定的客户,每个客户对应一些特定的订单,再如篮球队员与球队之间的关联(下图所示)。


    1)  双向关联: 默认情况下,关联是双向的。
     

public class Customer  
{  
    private Product[] products;  
    ……  
}  
public class Product  
{  
    private Customer customer;  
    ……  
}  

    2 )  单向关联: 类的关联关系也可以是 单向的 ,单向关联用 带箭头的实线 表示.
    
public class Customer  
{  
    private Address address;  
    ……  
}  
  
public class Address  
{  
    ……  
}  
    3) 自关联: 在系统中可能会存在 一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。
    
public class Node  
{  
    private Node subNode;  
    ……  
}   
2.聚合: 表示的是整体和部分的关系, 整体与部分   可以分开.

•  聚合关系(Aggregation) 表示一个 整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合   关系。
•   在聚合关系中, 成员类是整体类的一部分 ,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。 UML 中,聚合关系用带空心菱形的直线表示。 

public class Car  
{  
    private Engine engine;  
    public Car(Engine engine)  
   {  
        this.engine = engine;  
    }  
      
    public void setEngine(Engine engine)  
    {  
        this.engine = engine;  
    }  
    ……  
}  
public class Engine  
{  
    ……  
}  

3.依赖: 假设 A 类的变化引起了 B 类的变化,则说名 B 类依赖于 A 类。

    依赖关系有如下三种情况:

    1)A类是B类中的(某中方法的)局部变量;

    2)A类是B类方法当中的一个参数;

    3)A类向B类发送消息,从而影响B类发生变化;


二、区别

1.关联和聚合的区别

    这个主要体现在整体部分观念上。能明确总结出一个类是另一个类的一部分,就是聚合。

2.关联和依赖的区别

   关联一般是一个类的对象是另一个类的属性。另外依赖一般仅有有上述三个特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值