UML统一建模语言-知识点3.3类的关系

3.3类的关系
关系(Relationship)是指事物之间的联系 。泛化、实现、依赖和关联都是重要的关系。
泛化(generalization)是一般事物(称为父类或超类)和较特殊事物(称为子类或孩子类)之间的关系。 (代码级)
在这里插入图片描述`泛化关系特征
一般类定义了共同的属性和方法
特殊类继承了一般类的属性和方法
特殊类还可以定义自己的属性和方法
泛化关系只有在系统运行时它存在,系统不运行时它不存在,除非要将两类对象永久保存

实现(realization)是类元(类)之间的语义关系,关系中的一个类元(类)描述了另一个类元(接口)实现的契约。
在这里插入图片描述依赖(dependency)是一种使用关系,它说明了一个事物声明的变化可能影响到使用它的另一个事物,但反之未必。 (代码级)
依赖关系特征
一个类的方法的参数的数据类型是另一个类的定义
一个类的方法使用了另一个类的属性
一个类的方法调用了另一个类的方法
一个类的方法实例化了另一个类的对象
一个类的每一个对象与另一个类的所有(或部分)对象存在操作运行上的联系
依赖关系只有在系统运行时它存在,系统不运行时它不存在
关联是一种结构关系,它详述了一个事物的对象与另一个事物的对象相互联系 。 一个类的实例与另一个类的实例在结构上的静态联系。
关联关系特征
一个类的属性的数据类型是另一个类的定义
一个类的部分对象与另一个类的部分对象存在属性值上的联系
关联关系一旦建立,系统运行与否它都存在

关联关系

静态的
数据(指属性值)级别上的
部分的
有多重性
实体类之间存在关联关系

依赖关系

动态的
代码级别上的
全体的
无多重性
{边界类|控制类}和{边界类|控制类|实体类}之间存在依赖关系
1、关联名
可以给关朕加上关联名,来描述关联的作用,以便和其他关联关系相区别
在这里插入图片描述
2、关联角色
关联关系两端的类的对象在对方的类里的标识称为角色
在这里插入图片描述3、多重性
多重性表示可以有多少个对象参与该关联。
在下图中,雇主(公司)可以雇佣多个雇员,表示为0…n;雇员只能被一家雇主雇佣,表示为1。
在这里插入图片描述
4、关联类
如果在具有关联关系的类中,存在一个属性放在哪个类中都不合适的情况,就可以考虑使用关联类
在这里插入图片描述5、关联约束
对于关联可以加上一些约束,以加强关联的含义
在这里插入图片描述
6、限定关联
在关联端紧靠源类图标处可以有限定符。限定符的作用就是在给定关联一端的一个对象和限定符值以后,可确定另一端的一个对象或对象集。
在这里插入图片描述
7、自反关联
一个类与自身的关联。
自返关联虽然只有一个被关联的类,但有两个关联端,每个关联端的角色不同。
例如,“人”类的自返关联“结婚”。一个人与另一个人结婚,必然一个扮演丈夫角色,另一个扮演妻子角色。
在这里插入图片描述8、N元关联
3个或3个以上类之间的关联。
在这里插入图片描述9、聚合(聚集)关系聚合是一种特殊形式的关联。聚合表示类之间整体与部分的关系。
整体与部分没有相同的生存期。
整体不存在了,部分仍能存在。
在这里插入图片描述

注意:
接口,接口的实现类,接口的使用类,应用程序类
基于接口的编程
体现了:高内聚,低耦合,可扩展性

抽象类(abstract class)是不能直接产生实例的类。抽象类可以有属性,但是必然存在某些方法只是一些声明,而没有具体的实现。其它的一些方法可以有实现。抽象类一般作为超类(或基类、父类)存在,用于描述其他类的公共属性和操作。
接口(interface)定义为一个类的对外可见的一组操作的规范,它定义了类对外提供的服务。接口包含操作但不包含属性。所有的操作只是一些声明,而没有具体的实现。不能对接口实例化。
实现关系:一个类提供了另一个类对外公布的操作规范的实现代码。接口是一个特殊的类(无属性,有操作),实现接口操作的类(称为实现类)与接口之间存在实现关系。调用接口操作的类(称为使用类)与接口之间存在依赖关系。
抽象类和接口
共同点
两者都有方法没有提供实现代码
提供实现代码的其他类,实现的算法不同,会导致两者具有不同的行为。因此,很容易扩展软件系统的功能。
不同点
抽象类有些方法可以提供实现代码,接口所有的方法都没有提供实现代码
抽象类只能被继承,接口只能被实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值