UML几种类间关系
来源:互联网 发布:数据库引擎是什么 编辑:程序博客网 时间:2024/05/18 01:40
二、具体区别与联系
继承(泛化)
指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系,可分单重继承,多重继承(java不支持);在Java中此类关系通过关键字extends明确标识。
实现
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识
依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某个老师要授课,则需要有这么一门课让他教授,此时老师与课之间的关系就是依赖;表现在代码层面,为类Course作为参数被类Professor在Teach方法中使用;
关联
它体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,普通关联关系的两个类处于同一层次上,关联可以是单向(只有一个类知道另外一个类的公共属性和操作)的也可以是双向(两个类都知道另一个类的公共属性和操作)的;大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。
双向关联:
单向关联:
聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如书本与暑假、公司与员工的关系等;具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建。
组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,也可以理解为如果A由B组成,表现为A包含有B的全局对象,并且B对象在A创建的时刻创建。比如你和你的大脑或一本书和它的书页。
综上所述,对于继承、实现这两种关系比较简单,他们体现的是一种类与类、或者类与接口间的纵向关系;其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系,这几种关系都是语义级别的,所以从代码层面并不能完全区分各种关系;从后几种关系所表现的强弱程度来看,依次为:组合>聚合>关联>依赖。在面向对象的设计过程中,能采取强度较大的关系,决不能采取强度小的关系。
随着学习深入,会加上代码实现!
- UML几种类间关系
- 【UML建模】UML几种类间关系
- UML中几种类间关系
- UML中几种类间关系总结
- UML中几种类间关系
- UML中几种类间关系
- UML中几种类间的关系总结
- UML中几种类间关系:继承、实现 ..
- UML几种类图关系和表示
- UML几种类图关系和表示
- UML几种类图关系的总结
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
- Windows的TCP协议参数
- 黑马程序员-设计模式之单例设计模式
- Database '' is in warm standby. A warm-standby database is read-only.
- iOS开发icon图标设置--Restina支持
- SEH 代码实例
- UML几种类间关系
- MinGW安装和使用总结
- 01.python学习教程之表达式篇
- Android 进程和线程模型
- Android 应用程序签名
- JUNIPER防火墙网页无法登陆时后台配置
- android 读取SD卡文件
- WINCE平台上开发OPC程序所遇到的问题和解决方案
- DLX算法解数独游戏 Java版