刚开始我也对java中的依赖、关联、聚集关系的概念很混淆,但是经过多琢磨,结合现实生活中的一些事物进行讲解,竟然能更加透彻地理解这三者的概念,所以总结一下,并归档。
依赖:
依赖体现在类A对象中并不需要存在有类B类型的对象属性,而是在使用时,直接实例化类B来调用相关的业务方法来完成整个业务操作,打个比方:当类A对象一个人在do something的时侯,它发现当前的task难以完成,于是乎它直接拉一个类B对象(实例化一个类B);并要求类B对象协助它完成当前的task。完成task后,类A对象也不负责类B对象的“食宿”和“薪水”(由虚拟机去进行处理)。
关联:
关联与聚集非常相似,但其实仍然存在不同的地方,首先看看相似的地方:关联与聚集相似的地方是类A对象中均存在类B对象属性。
不同点可以从语义上进行区分:关联关系中存在有一定的主次关系,并且这种主次关系可有可无,仍然打个比方:一个客户(customer)在taobao上有N个订单(order),那么在customer对象中就会存在一个ArrayList<order>类型的属性,它们形成了一个一对多的关联关系,但是也存在有无关联的情况,由于某个客户是刚注册的,所以他并还没有订单信息,因此可以看出关联关系中存在有一定的主次关系,并且可有可无的特性(可以主次关系这个词用得不是足够恰当,但是在笔者看来,这样也蛮好理解的)。
聚集:
而聚集则不然,仍然用个比方来进行说明:一个用来煲水的茶壶,由一个底座和壶组成,缺一不可,否则只有底座也煲不了水,只有壶也不能加热。由此可以看出,茶壶对象由底座对象和壶对象组合而成,缺一不可,而且聚集中没有类似于订单与客户之间的主次关系。
========================半夜还没睡,努力写总结的分割线======================
以上内容均为个人的总结与看法,如果您有不同的看法或想法,欢迎你参加讨论。
分享到:
相关推荐
UML 中的关联关系他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的...
关联关系是指两个类、或者类与接口之间语义级别的一种强依赖关系。这种关系比依赖关系更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。例如,我和我的朋友之间的...
依赖关系用于表示临时的交互需求,关联关系用于表示长期的联系,而聚合和组合则分别描述了不同强度的整体与部分之间的关系。了解并掌握这些关系,可以帮助开发者更有效地设计出清晰、灵活且可扩展的系统架构。在实践...
在UML中,有六种主要的类间关系:继承、实现、依赖、关联、聚合和组合。理解这些关系对于设计高质量的软件架构至关重要。 1. **继承**: 继承是类与类之间的一种层次结构关系,表示一个类(子类)可以从另一个类...
依赖注入是一种设计模式,其核心思想是将对象之间的依赖关系从代码中分离出来,由外部容器(如Spring框架)负责管理对象的创建和装配,而不是由对象自身负责。这样可以提高代码的可测试性、可维护性和灵活性。 二、...
在UML中,关系分为七种:继承关系、实现关系、依赖关系、关联关系、有方向的关联、聚合关系和组合关系。 1. 继承关系(Generalization) 继承关系是一种类与类、接口与接口之间的关系,指的是一个类(子类)继承...
本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的使用。 1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件...
CDI简化了组件间的依赖关系,允许开发者通过注解和配置来管理依赖,而无需手动创建对象或直接绑定接口实现。 #### 定位符(Qualifiers) 定位符是CDI中用于区分具有相同类型的不同依赖注入点的注解。通过使用定位符...
在Java的Spring框架中,事务管理和Bean管理是两个核心概念,它们在Web应用程序开发中扮演着至关重要的角色。本文将深入解析Spring框架中的混合事务(也称为编程式事务管理)与Bean的区别,以及如何在实际应用中有效...
它可以帮助开发者快速构建和部署 JAVA 项目,管理项目依赖关系,自动下载和管理 jar 包等。 在 JAVA 中,程序可以分为结构定义语句和功能执行语句。结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的...
《图形化关系图(节点关联处理)工具详解》 在信息技术领域,图形化关系图(节点关联处理)工具是用于可视化数据和系统间复杂关系的重要工具。这些工具以图形方式展示节点之间的相互联系,帮助用户理解和操作数据,...
1.在Java中,负责对字节代码解释执行的是____。 A、垃圾回收器 B、虚拟机 C、编译器 D、多线程机制 2.下列叙述中,正确的是____。 A、Java语言的标识符是区分大小写的 B、源文件名与public类名可以不...
在IT行业中,尤其是在数据分析、项目管理和商业演示领域,交叉关联关系是至关重要的概念。这种关系通常用图表来直观地表达,以便更好地理解不同元素之间的相互作用。标题中的“交叉关联关系PPT图表素材下载.rar”...
一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 ...
为了实现这一过程,涉及多个数据库表的关联,这些表之间存在着复杂的关系,对于初学者来说,理解这些表的关联关系对于掌握整个日记账导入流程至关重要。 首先,要了解的是日记账导入的基本流程,它包括数据的准备、...
在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...
3. **classpath**:在Java中,classpath是指Java虚拟机(JVM)寻找类文件的路径。将银行信息放在classpath下意味着这些信息应该位于Java项目类路径下的某个位置,使得程序在运行时能够找到并加载它们。 4. **Spring...
关联和依赖关系分别通过实线和虚线来区分,前者表示稳定的关系,后者表示临时的使用。聚合和组合是两种特殊的关联关系,聚合表示部分与整体的关系,组合则更强调部分是整体不可分割的一部分。 时序图是另一种重要的...