`
java菜菜鸟
  • 浏览: 11084 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

区分java中的依赖、关联、聚集关系

阅读更多
刚开始我也对java中的依赖、关联、聚集关系的概念很混淆,但是经过多琢磨,结合现实生活中的一些事物进行讲解,竟然能更加透彻地理解这三者的概念,所以总结一下,并归档。

依赖:

依赖体现在类A对象中并不需要存在有类B类型的对象属性,而是在使用时,直接实例化类B来调用相关的业务方法来完成整个业务操作,打个比方:当类A对象一个人在do something的时侯,它发现当前的task难以完成,于是乎它直接拉一个类B对象(实例化一个类B);并要求类B对象协助它完成当前的task。完成task后,类A对象也不负责类B对象的“食宿”和“薪水”(由虚拟机去进行处理)。

关联:

关联与聚集非常相似,但其实仍然存在不同的地方,首先看看相似的地方:关联与聚集相似的地方是类A对象中均存在类B对象属性。

不同点可以从语义上进行区分:关联关系中存在有一定的主次关系,并且这种主次关系可有可无,仍然打个比方:一个客户(customer)在taobao上有N个订单(order),那么在customer对象中就会存在一个ArrayList<order>类型的属性,它们形成了一个一对多的关联关系,但是也存在有无关联的情况,由于某个客户是刚注册的,所以他并还没有订单信息,因此可以看出关联关系中存在有一定的主次关系,并且可有可无的特性(可以主次关系这个词用得不是足够恰当,但是在笔者看来,这样也蛮好理解的)。

聚集:

而聚集则不然,仍然用个比方来进行说明:一个用来煲水的茶壶,由一个底座和壶组成,缺一不可,否则只有底座也煲不了水,只有壶也不能加热。由此可以看出,茶壶对象由底座对象和壶对象组合而成,缺一不可,而且聚集中没有类似于订单与客户之间的主次关系。



========================半夜还没睡,努力写总结的分割线======================

以上内容均为个人的总结与看法,如果您有不同的看法或想法,欢迎你参加讨论。
分享到:
评论
1 楼 lenovo 2009-11-20  
好帖,学习了
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    UML中继承实现依赖关联聚合组合的联系与区别_线条箭头.doc

    UML 中的关联关系他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友。这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的...

    UML类图关系泛化、继承、实现、依赖、关联、聚合、组合.doc

    关联关系是指两个类、或者类与接口之间语义级别的一种强依赖关系。这种关系比依赖关系更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。例如,我和我的朋友之间的...

    面向对象的依赖、关联、聚合、组合关系

    依赖关系用于表示临时的交互需求,关联关系用于表示长期的联系,而聚合和组合则分别描述了不同强度的整体与部分之间的关系。了解并掌握这些关系,可以帮助开发者更有效地设计出清晰、灵活且可扩展的系统架构。在实践...

    UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别

    在UML中,有六种主要的类间关系:继承、实现、依赖、关联、聚合和组合。理解这些关系对于设计高质量的软件架构至关重要。 1. **继承**: 继承是类与类之间的一种层次结构关系,表示一个类(子类)可以从另一个类...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    依赖注入是一种设计模式,其核心思想是将对象之间的依赖关系从代码中分离出来,由外部容器(如Spring框架)负责管理对象的创建和装配,而不是由对象自身负责。这样可以提高代码的可测试性、可维护性和灵活性。 二、...

    UML中关系图解

    在UML中,关系分为七种:继承关系、实现关系、依赖关系、关联关系、有方向的关联、聚合关系和组合关系。 1. 继承关系(Generalization) 继承关系是一种类与类、接口与接口之间的关系,指的是一个类(子类)继承...

    java zip rar(区分有无密码的RAR文件) gz ftp工具类

    本文将详细介绍标题和描述中提到的几个关键知识点:Java中的zip、rar(包括处理带密码的RAR文件)、gz压缩,以及FTP工具类的使用。 1. **Java ZIP压缩与解压缩**: Java内置的`java.util.zip`包提供了处理ZIP文件...

    java 13 distributed programming and java

    CDI简化了组件间的依赖关系,允许开发者通过注解和配置来管理依赖,而无需手动创建对象或直接绑定接口实现。 #### 定位符(Qualifiers) 定位符是CDI中用于区分具有相同类型的不同依赖注入点的注解。通过使用定位符...

    深入解析Java的Spring框架中的混合事务与bean的区分

    在Java的Spring框架中,事务管理和Bean管理是两个核心概念,它们在Web应用程序开发中扮演着至关重要的角色。本文将深入解析Spring框架中的混合事务(也称为编程式事务管理)与Bean的区别,以及如何在实际应用中有效...

    java后端学习课程整理

    它可以帮助开发者快速构建和部署 JAVA 项目,管理项目依赖关系,自动下载和管理 jar 包等。 在 JAVA 中,程序可以分为结构定义语句和功能执行语句。结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的...

    图形化关系图(节点关联处理)工具

    《图形化关系图(节点关联处理)工具详解》 在信息技术领域,图形化关系图(节点关联处理)工具是用于可视化数据和系统间复杂关系的重要工具。这些工具以图形方式展示节点之间的相互联系,帮助用户理解和操作数据,...

    java基础面试笔试题及其答案

    1.在Java中,负责对字节代码解释执行的是____。  A、垃圾回收器  B、虚拟机  C、编译器  D、多线程机制  2.下列叙述中,正确的是____。  A、Java语言的标识符是区分大小写的  B、源文件名与public类名可以不...

    交叉关联关系PPT图表素材下载.rar

    在IT行业中,尤其是在数据分析、项目管理和商业演示领域,交叉关联关系是至关重要的概念。这种关系通常用图表来直观地表达,以便更好地理解不同元素之间的相互作用。标题中的“交叉关联关系PPT图表素材下载.rar”...

    Thinking in java4(中文高清版)-java的'圣经'

    一切都是对象 2.1 用引用操纵对象 2.2 必须由你创建所有对象 2.2.1 存储到什么地方 2.2.2 特例:基本类型 2.2.3 Java中的数组 2.3 永远不需要销毁对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 创建新的数据类型:类 ...

    总账_日记账导入_表关联关系

    为了实现这一过程,涉及多个数据库表的关联,这些表之间存在着复杂的关系,对于初学者来说,理解这些表的关联关系对于掌握整个日记账导入流程至关重要。 首先,要了解的是日记账导入的基本流程,它包括数据的准备、...

    hibernate关联映射实例

    在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...

    java根据卡号识别银行

    3. **classpath**:在Java中,classpath是指Java虚拟机(JVM)寻找类文件的路径。将银行信息放在classpath下意味着这些信息应该位于Java项目类路径下的某个位置,使得程序在运行时能够找到并加载它们。 4. **Spring...

    java-maven-apache-ant-zip-2.3-jar包依赖

    Maven则是一个强大的项目管理工具,它通过读取项目配置文件(pom.xml)来管理项目的依赖关系。在Maven中,`apache-ant-zip:2.3`这个依赖意味着项目需要这个特定版本的Apache Ant ZIP任务支持。通过在pom.xml文件中...

Global site tag (gtag.js) - Google Analytics