UML类图总结

类之间的关系,依赖、泛化(继承)、实现、关联、聚合与组合

  • + public
  • - private
  • # protected
  • 属性表达式 可见性 名称 :类型 [ = 缺省值]
  • 方法表达式 可见性 名称(参数列表) [ : 返回类型]

关联关系

关联关系是类与类之间的联系,是依赖关系的特例

关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系。如老师和学生,师傅和徒弟,涨幅和妻子,关联关系是类与类之间最常用的一种关系,分为一般关联关系,聚合关系和组合关系

关联又可以分为单向关联,双向关联,自关联

1.单向关联

在UML类途中单向关联用一个带箭头的实线表示,上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

在这里插入图片描述

2.双向关联

双向关联就是双方各自持有对方类型的成员变量。

在UML类图中,双向关联用一个不带箭头的直线表示,图中Customer类中维护一个List,表示一个顾客可以购买多个商品,在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。

在这里插入图片描述

3.自关联

自关联在UML类图中有一个带箭头且指向自身的线表示,图中的意思就是Node类包含类型为Node的成员变量,也就是自己包含自己

在这里插入图片描述

聚合关系

聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开

(台式机:电脑,显示器,鼠标,键盘;大学:老师,学生;)

聚合关系是关联关系的一种,是强关联关系,是整体和部分的关系。

(整体和部分的内容可以分开,就是聚合,如果不可以分开就是组合)

聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。

在UML类图中,组合关系用带实心菱形的实现来表示,菱形指向整体。下图所示的是头和嘴的关系图:

在这里插入图片描述

组合关系

组合关系(Composition):整体与部分的关系,但是整体与部分不可以分开。

(头:眼睛,嘴,耳朵;人:胳膊,腿)

组合表示类之间的整体与部分的关系,但是他是一种更强烈的聚合关系。

(整体和部分的内容可以分开,就是聚合,如果不可以分开就是组合)

在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,偷喝嘴的关系,没有了头,嘴也就不存在了。

在UML类图中,组合关系用带实心菱形的实现表示,菱形指向整体。下图所示头和嘴的关系图:

在这里插入图片描述

依赖关系

  1. 只要是在类中用到了对方,那么他们之间就存在依赖关系。
  2. 类的成员属性
  3. 方法的返回类型
  4. 方法接收参数类型
  5. 方法中使用到

依赖关系是一种使用关系,他是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量,方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。

在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。下图所示的是司机和汽车的关系图,司机驾驶汽车:

在这里插入图片描述

继承关系(泛化关系)

继承关系与泛化关系是相同的概念,是依赖关系的特例。

继承关系是对象之间耦合度最大的一种关系,表示一般一特殊的关系,是父类与子类之间的关系,是一种继承关系。

在UML类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码是现实,使用面向对象的集成机制类实现泛化关系。例如,Student类和Teacher类都是Person类的子类,其类图如下图所示:

在这里插入图片描述

实现关系

实现关系是接口与实现类之间的关系。是依赖关系的特例

在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有抽象操作。

在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,骑车和船实现了交通工具,其类图如下图所示:

在这里插入图片描述


依赖是对象间短暂的一种关系,被调用类表现为调用类的局部变量、方法的参数、以及调用类调用被调用类的静态方法,属于依赖关系。

关联是对象间长期的一种关系,是依赖关系的特例,在这个长期的关系中,被调用类表现为调用类的引用、或者调用类的属性,这种情况说调用类和被调用类之间就属于关联关系。

聚合和组合是关联的特殊表现

依赖是一种弱关联

依赖:
如果A指向B,则说明A中使用了B,使用方式包括A类中有B类实例化对象的局部变量。A类中有方法把B类实例化对象当做了参数,A类中有方法调用了B类中的静态方法。
关联:
如果A指向B,则说明A类中有B类的成员变量。

关联,聚合,组合,依赖,继承,实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值