Java开发 类与类之间的关系(关联+依赖)【学习篇8】

2020-04-26  本文已影响0人  iOS_PM_WEB_尛鹏

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
{\color{#3f48cc}{\pmb{点击右上角小【1】快速预览本文内容}}} [1]

🔥知识点内容

🔓1. 关联 [2]

关联是一种结构关系,说明一个事物的对象与另一个事物的对象相联系。给定有关联的两个类,可以从一个类的对象得到一个类的对象。关联有两元关系和多元关系。两元关系是指一种一对一的关系,多元关系是一对多多对一的关系
关联就是某个对象会长期的持有另一个对象的引用,而二者的关联往往也是相互的。关联的两个对象彼此间没有任何强制性的约束,只要二者同意,可以随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还可以再被别的对象关联,所以关联是可以共享的。
两个类之间的简单关联表示了两个同等地位之间的结构关系。当你想要表示结构化关系时使用关联
关联表示has-a关系,如学生拥有一个课程,往往表现为B作为A的属性存在(A关联B)

  • 一对一
    最典型的一对一关系莫过于人和证件之间的关联,例如:一个人只能有一个驾照,而一个驾照只能归属与一个人:
    image.png
  • 一对多
    人还可以跟其他事物构建一对多的关联关系,比如将驾照换为荣誉证书,那么一个人可以有多个荣誉证书,我们可以使用数组或集合来描述这个关系
    image.png
  • 关联关系还可以细分为 聚合组合 两种
  • 聚合是一种特殊的关联 [3],表示整体对象拥有部分对象。 关联关系和聚合关系来语法上是没办法区分的,从语义上才能更好的区分两者的区别。聚合是较强的关联关系,强调的是整体与部分之间的关系。聚合的整体和部分之间在生命周期上没有什么必然的联系,部分对象可以在整体对象创建之前创建,也可以在整体对象销毁之后销毁。
    image.png
  • 组合是聚合的一种形式 [4],它具有更强的拥有关系,强调整体与部分的生命周期是一致的,整体负责部分的生命周期的管理。生命周期一致指的是部分必须在组合创建的同时或者之后创建,在组合销毁之前或者同时销毁,部分的生命周期不会超出组合的生命周期。例如Windows的窗口和窗口上的菜单就是组合关系。如果整体被销毁,部分也必须跟着一起被销毁,如果所有者被复制,部分也必须一起被复制。
    image.png

🔓2.依赖 [5]

依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立
此关系最为简单,也最好理解,所谓依赖就是某个对象的功能依赖于另外的某个对象,而被依赖的对象只是作为一种工具在使用,而并不持有对它的引用
依赖体现了“use a”关系
依赖关系一般使用方法的参数体系

🔓3.类与类之间的关系 [6]

类与类之间的横向关系较为微妙,大体上可以分为四种:依赖 、关联、聚合、组合
依赖体现了use a关系,通常使用方法的参数描述
关联体现了has a关系,通常使用类的成员属性描述
几种关系的强弱如下:依赖 < 关联 < 聚合 < 组合

image.png

🔥2.应用场景:


🔥3.实现目标:


🔥4.代码实现:




  1. 🔥【知识点回顾·简介】 ↓↓↓

  2. 🔑[关联]

  3. 🔑[关联-聚合]

  4. 🔑[关联-组合]

  5. 🔑[依赖]

  6. 🔑[类与类之间的关系]

上一篇下一篇

猜你喜欢

热点阅读