小解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.关联和依赖的区别

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部