UML--类之间的五种关系

UML中的关系(Relationships)主要包括5种:关联关系、聚合关系、依赖关系、泛化关系、实现关系

1.关联(Association)关系

关联关系是一种结构化的关系,指一种对象和另一种对象有联系。它使一个类知道另一个类的属性和方法。

关联关系有双向关联和单向关联。

双向关联:两个类都知道另一个类的公共属性和操作。

单向关联:只有一个类知道另一个类的公共属性和操作。

大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可复用的类。

UML图中实现使用一条实线连接相同或不同类。如图:


→聚合(Aggregat ion)关系

聚合也称聚集,是关联的特例。表示类与类之间的关系是整体与部分的关系,即一个表示整体的模型元素

可能由几表示部分的模型元素聚合而成。

共享聚合:如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集成为共

享聚合。

复合聚合(简称为组成):如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之

消失(或去存在价值),则该类聚集成为复合聚合。

普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同层次:一个整体,一个部分。同时,

是一种的”拥有“关系。此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属

于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等。表现在代码层

面,和关联关系是一致的,只能从语义级别来区分。

UML图中聚合使用一条带有虚心菱形的线来表示。如图:


2.依赖(Dependency)关系

依赖关系描述两个模型元素(类、用例等)之间的语义关系:其中一个模型元素是独立的,另一个模型元

素不是独的,它依赖于独立的模型元素,如果独立的模型元素改变,将影响依赖于它的元素。

例如:如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。

UML图中依赖使用一条右箭头的虚线指向被依赖的类。如图:


3.泛化(Generalization)关系

UML中的泛化关系定义了一般元素和特殊元素之间的分类关系,与C++及Java中的继承关系有些类似。

具体形式类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。

泛化可分为普通泛化和受限泛化。

UML图中泛化使用一条带有空心三角箭头的实现指向基类。如图:


4.实现(Realization)关系

实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而

不是结构或实现。真正的实现由前一个模型元素来完成。

或者理解为:一个类实现接口(可以是多个)的功能;

实现是类与接口之间最常见的关系,在以下两种地方会经常遇到:

(1)一种是在接口和实现它们的类或构件之间;

(2)一种是在用例和实现它们的协作之间。

UML图中实现使用一条带有空心三角箭头的虚线指向接口。如图:


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨幂等

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值