参考 :blog
依赖关系 : 在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。
class Driver { //使用形参方式发生依赖关系 public void drive1(Car car){ car.run(); } //使用局部变量发生依赖关系 public void drive2(){ Car car = new Car(); car.run(); } //使用静态变量发生依赖关系 public void drive3(){ Car.run(); } }
关联 ,聚合 ,组合 ,耦合度逐渐增加!都是关联关系!
以司机和车的关系为例:
关联 :“车不是我的,我只是个司机,别人给我什么车我就开什么车,我使用这个车。”
它使一个类知道另一个类的属性和方法。例如如果A依赖于B,则B体现为A的全局变量。如person类和company类
class Driver { //使用成员变量形式实现关联 Car mycar; public void drive(){ mycar.run(); } ... //使用方法参数形式实现关联 public void drive(Car car){ car.run(); } }
聚合: 一般使用成员变量形式实现,一般使用setter方法给成员变量赋值“车是一辆私家车,是司机财产的一部分”车的生命周期与司机无关
聚合关系是整体和个体的关系 ,普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分
class Driver { //使用成员变量形式实现聚合关系 Car mycar; public void drive(){ mycar.run(); } }
组合 : "车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用" ------ 相互依赖,而前面两种还构不成这么强的耦合 , 一般通过构造方法给成员变量赋值!
public Driver(Car car){ mycar = car; }
关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
相关推荐
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
UML中依赖泛化关联实现聚合组合的C#实现UML中依赖泛化关联实现聚合组合的C#实现
UML中依赖泛化关联实现聚合组合的Java实现
关于面向对象的依赖、关联、聚合、组合关系
UML关系(泛化,实现,依赖,关联(聚合,组合))
UML学习之依赖_关联_聚合_组合_继承
UML类关系-依赖,关联,聚合和组合 这几种关系很容易混淆,一个总结文档。
几种类间关系:继承、实现、依赖、关联、聚合、组合。可做为开发设计时速查手册。
UML中依赖泛化关联实现聚合组合的C#实现_配UML图.doc
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别 这是一堂关于UML基础知识的补习课;现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范 建模了...
UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc
UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合).doc
主要介绍了Java依赖-关联-聚合-组合之间区别理解,依赖关系比较好区分,它是耦合度最弱的一种,下文给大家介绍的非常详细,感兴趣的朋友一起看看吧
NULL 博文链接:https://newtime.iteye.com/blog/505170
(5)聚合:又称组装,其原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。 (6)关联:是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。能使人发生联想的...
NULL 博文链接:https://abcity.iteye.com/blog/1740763
NULL 博文链接:https://aoyi.iteye.com/blog/659179
1.软件思想UML:UML类图符号(依赖、关联、聚合、组合、泛化)、UML类符号相互之间的区别(聚合与组合、关联和聚合、关联和依赖、泛化和实现)。 2.Sping Boot:Spring Boot环境配置、Spring Boot核心配置和注解、...
1)类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2)在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的...