社区
研发管理
帖子详情
请帮我解释一下UML里的关联和依赖,区别是什么
longbow74
2003-02-21 04:37:55
?
...全文
473
7
打赏
收藏
请帮我解释一下UML里的关联和依赖,区别是什么
?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
IWillSaveGod
2003-02-27
打赏
举报
回复
给个权威解释(别骂我):
对类而言依赖存在的理由有:B作为一个参数被传递给A众所定义的一个方法(参数可见性);B在A的一个方法众被声明未局部对象(局部声明可见性);B对A全局可见(全局可见性)
而关联一般应来描述普通的属性可见性(B是A的一个属性, 是一种相对长久的可见性, 是普遍存在的,)
yestoall
2003-02-27
打赏
举报
回复
怎么还没结贴。
termite
2003-02-27
打赏
举报
回复
agree
u can see related books.
longbow74
2003-02-25
打赏
举报
回复
举个例子,
class Student
{
Teacher teacher;
}
二者是关联还是依赖?按意义说象是关联
class Student
{
Teacher teacher;
viod class(Teacher teacher)
{
}
}
呢?
如果关联和依赖普遍的共存,UML如何表示呢?都画上是不是有点乱?
yestoall
2003-02-24
打赏
举报
回复
(以下转载自UMLCHINA论坛)
在UMLCHINA精华区,看到了一些关联和依赖的讨论,似乎越讲越糊涂.我想谈一点自己的看法:
1、在《UML参考手册》第37页中,指出“关联和泛化都是依赖关系,但是它们有更特别的语义,故它们有自己的名字和详细的语义。我们通常用依赖这个词来指其他的关系。”
2、在《UML参考手册》30页中,定义了关联为“关联描述了系统中对象或实例之间的离散连接。最普通的关联是一对类元之间的二元关联。关联的实例之一是链。”
3、接着,又说明了“关联关系是整个系统中使用的“胶粘剂”,如果没有它,那么只剩下不能一起工作的孤立的类。”
根据这三点引用,我们就可以知道关联是类之间的“静态”关系,只有通过这个关系的导航,一个对象才能找到另一个对象。它就象我们手中的通信录,取得其他对象的联系方法。除了这个职责之外,关联没有进一步的意义了。这时有人可能会问,我们总该用关联(通信录)为程序做点什么呀!不好意思,关联除了能找到对方之外,别的什么都不懂了。因此,一般来说,关联是用语言机制中的指针来实现,可以在程序初始或运行是建立。当然,也可以用任何标识对象,并能在运行中定位对象的机制来实现。
依赖关系,简单地来说就是“动态”的关系,提供者可能要求或指示依赖关系中客户的变化,依赖者为了达成要求被依赖对象行动的目的,依赖首先要取得对方的引用,以便于实施这个依赖操作,对方对象的引用可以通过二种方法获得,一种是依赖对象之间也存在关联关系,所以它可以直接通过自己的关联找到对方对象的引用,第二种是依赖对象之间不存在直接关联关系,程序设计者有责任设计通过第三方对象的关联,经过一次或多次的关联导航获得目标对象的引用。最后,依赖对象通过这二种的任一种方法获得目标对象引用后,就可以向目标对象施加相应的依赖关系行为。
根据上述的分析,可以简单地作一个推论,仅对于这两个关系来说,对象之间存在四种关系:
1、无关联,无依赖
它们是无关的对象类。
2、有关联,无依赖
一般用来为其它对象类导航到关联端对象的桥梁。关联对象之间除了相互存储引用外,没有进一步的行为。也许,关联引用在程序中没有导航经过,这样的话,可以取消关联关系,就变成了(1)的情况。
3、无关联,有依赖
这是我们常常希望实现的松耦合关系的情景,对象之间没有直接的关联关系存在,所以它们没有直接存储对方的引用,使程序的可以更灵活地变动。但是为了获得对象的引用以便实施依赖行为,比如调用,发消息,访问等依赖操作,可以通过间接关联来定位对方。一般情况下,设计者会为依赖关系提供一个存取方法,获取对象引用。如果间接关联无法到达彼此对方,那么这个依赖是不可实现的,这种“伪依赖”要么是程序设计的逻辑错误(关系至少出现一个对象),要么是正常的NULL对象(关系允许0个对象出现)。
4、有关联,有依赖
当然,这是最简单,也是最直接的实现了,它的意思也表达的最清楚。依赖的实施直接通过本身的关联引用进行。这时,对象间的耦合关系确实比较强了,看需要是否解耦或不变。
上面是我对“关联”和“依赖”关系区别的理解,与大家探讨。
sunnytsai
2003-02-24
打赏
举报
回复
简单的说,关联表示两个类之间的关系,比如说COMPANY类和DEPARTMENT类之间是通过“has-a”关系关联起来,关联还有很多其他的的修饰和限制,比如说:“1...*”(一对多关系)等等。
以来表示一个类使用了另外一个类公开的方法。比如说STUDENT类使用了BOOK类提供的read()的方法,那么STUDENT类依赖BOOK类。
study_body
2003-02-24
打赏
举报
回复
学习,呵呵
UML
类图 关系 大全 泛化、
关联
、
依赖
等
UML
类图关系大全 java类关系
UML
视图表示、泛化、
关联
、
依赖
等
《
UML
建模实例教程》【PPT】
6.4.1
关联
关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6
依赖
关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner...
【
UML
】
关联
和
依赖
关联
和
依赖
相对于上边两个关系,则表现的不是很容易理解,所以我们今天来深入学习一下。
关联
它表示类与类之间的连接,它使得一个类知道另一个类的属性和方法。
关联
可以用单向箭头表示单向
关联
,使用双...
uml--
依赖
和
关联
的
区别
|字号 订阅 ...对于
依赖
和
关联
,网上大部分都是流行下面这篇文章的说法,...首先类之间的关系从宏观上可以分为:
关联
、
依赖
、继承(泛化),而其中
关联
又有两种特例:聚合和组合,不过在
UML
2.X中聚合和组合合成
UML
类图
依赖
与
关联
的
区别
所以整理一下: 类与类之间由弱到强关系是: 没关系 >
依赖
>
关联
> 聚合 > 组合。 类和类之间八竿子打不着那就是没关系,这个没啥歧义。
依赖
(dependency) 可以...
研发管理
1,265
社区成员
28,324
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章