什么是关联和依赖,他们的区别 在哪里??

孤尽JavaSea 2010-07-06 01:43:52
这是我的总结,希望大家给于指正:
依赖

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用; 关联类似于组合或者包含,暂时无法确切确定两者是否为一个概念。包含是组合的另一种说法,就是一个类的成员变量是另一个类的数据成员。

关联

他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;关联与继承类似,与上例一致,也暂时无法确定两者是否所指同一概念。

Class A{
public B objectb;
}A 与B是依赖关系
_________________________________________________________________
Class B{
}

Class A extends B{
}
A与B是关联关系。
...全文
1637 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
enet_java 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 barech 的回复:]
类与类之间的关系就叫做关联关系。

具体可以分为很多方式:继承、组合、聚合、依赖;这都是类之间关联关系的一种表现形式。
[/Quote]

依赖是对象间最弱的一种关系,一个对象依赖于另一个对象是指这个对象和它之间存在短期的关系。
在这个短暂的关系中,依赖的对象通过调用被依赖对象的方法来获取它提供的服务,或者依此来配置被依赖的对象。


关联是对象间长期的关系。在关联中,一个对象保存对另一个对象的引用,并在需要的时候调用这个对象的方法。

聚合表明一个对象是一个更大的整体的一部分。这个被包含的对象可能会参与多个的聚合关系,并相对整体而对立存在。


组合表明一个对象是被一个更大的整体所拥有。这个被包含的对象可能不参与更多的组合关系,并且不能独立于这个整体而存在。
ronniegxq 2010-07-07
  • 打赏
  • 举报
回复
支持1楼
24K純帥 2010-07-07
  • 打赏
  • 举报
回复
学习。。
jn789987 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dracularking 的回复:]
我怀疑这些概念是否有非常严格且规范的定义

依赖,我认为是某些状态或动作的发挥或实施的必要前提
比如第一例中我不认为是依赖关系,说成关联关系没错,但是不是依赖值得考究,因为A的状态或行为未必会依赖到B,可能依赖到B也可能依赖不到B,如果B是某些必须要初始化的属性,那可以说成依赖,因为没有B的参与,A没法完成某项任务
[/Quote]
顶下
leon0098 2010-07-06
  • 打赏
  • 举报
回复
关联是有一对多,多对多等关系的,而依赖是没有的。
dadahua2006 2010-07-06
  • 打赏
  • 举报
回复
我同意楼上的
dracularking 2010-07-06
  • 打赏
  • 举报
回复
我怀疑这些概念是否有非常严格且规范的定义

依赖,我认为是某些状态或动作的发挥或实施的必要前提
比如第一例中我不认为是依赖关系,说成关联关系没错,但是不是依赖值得考究,因为A的状态或行为未必会依赖到B,可能依赖到B也可能依赖不到B,如果B是某些必须要初始化的属性,那可以说成依赖,因为没有B的参与,A没法完成某项任务
licip 2010-07-06
  • 打赏
  • 举报
回复
继承又叫一般化!或泛化
barech 2010-07-06
  • 打赏
  • 举报
回复
类与类之间的关系就叫做关联关系。

具体可以分为很多方式:继承、组合、聚合、依赖;这都是类之间关联关系的一种表现形式。


62,633

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧