UML六种箭头的含义

每次都是懒,然后查到别人的描述。我感觉在我的脑子里印象不深刻。还是要自己写一篇。

不同的箭头,代表着不同类之前的关系。

被箭头指的类都是父类,基类,类A使用类B的类A。

六种如下:(组聚泛实关依)——从强到弱,而且箭头的笔画越来越少。

组合

特征

  • 类A组合类C,类C没有独立的生命周期,如A-书柜与C-木板。
  • 书柜有木板,被指的是书柜。
  • 组合是是聚合的加强版。类A有一个成员变量为类C的实例,但是类C中只有构造函数,没有其他操作函数(如use, active)。所有的操作函数都在类A中实现。
  • 形状——实线实心菱形。

聚合

特征

  • 类A聚合类B,A和B 都是各自独立的生命周期,如A-书柜与B-书本。
  • 书柜有书,被指的是书柜。
  • has-a的单向关系,书柜里有书本,但是书本不一定要存在于书柜中。
  • 实现——类A有一个成员变量为类B的实例。
  • 形状——实线空心菱形。

泛化

特征

  • 指的是一般与具体的关系。一般不是完全抽象。
  • java里的extends,抽象类和子类的关系。
  • 被指的是抽象类。
  • 形状——实线三角。

实现

特征

  • 指的是抽象与具体的关系。
  • java里的implements ,接口(interface)与子类的关系。
  • 被指的是接口。
  • 形状——虚线三角。

关联

特征

  • 类A关联类D,A是学校,D是学生。
  • 实现:类A中的成员变量为类D的实例。
  • 关联>聚合>组合
  • 与聚合的联系与区别
    • 语法上没有区别
    • 语义上,关联强调[可以通过一个类获取到另一个类的信息],聚合强调的[一对多的关系]。
  • 形状——实线箭头。

依赖

特征

  • 类A依赖类B,则类A中的函数形参有类B的实例。
  • 形状——虚线箭头。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章