📄 “关联”or“依赖”.txt
字号:
类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
类之间的联系设置成“关联(association)”or“依赖(dependency)”似乎全在个人喜好,有无一个容易操作的判断标准?
1==========
原文(jackmoongong于2001/04/25 12:35粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
"依赖":如果A类改变,B类必然改变。关联则不一样吧!
11==========
原文(ooandoo于2001/04/25 13:54粘贴)
请问类改变是什么意思?
--------------------------------------------------------------------------------
类改变是什么意思?属性改变?方法改变?
111==========
原文(jackmoongong于2001/04/25 14:34粘贴)
回复: 请问类改变是什么意思?
--------------------------------------------------------------------------------
我是这么理解的,你提供给B类的接口不变,而里面的实现有了本质变化的时候,B的实现也要改变可算做依赖关系。
2==========
原文(jasperyeh于2001/04/25 13:00粘贴)
Re: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
一个项目,目的是建立文章库,其中要做的是收集各种书籍,文章,期刊,杂志,等等文字类的素材。
于是,基于此,评论文章和书,是关联关系。评论文章可以单独被收列在文章库目录列表中。
如果,第二个项目,我们要建立的是书库,目的是收集古今中外的著名书籍,长篇的,短篇的,古代的,现代的。
那么,评论文章和书之间,就存在依赖关系,盖因这时候,评论文章不能独立成为一个目标对象了。它不能被单独收列在目录列表中。
唉,这个例子还不太准确,算了,回头有空我再举个象话一点的吧,:)
jasper
21==========
原文(mouri于2001/04/25 13:57粘贴)
我的直观看法
--------------------------------------------------------------------------------
书本身是客观存在的,有没有相应的评论文章,它都是一本书
而评论文章就不同了,如果没有了评论对象,它也就没有存在的价值了
这决不是个人喜好可以改变的关系
211==========
原文(jasperyeh于2001/04/25 14:33粘贴)
Re: 我的直观看法
--------------------------------------------------------------------------------
但我要想强调的是区别,而不是reality中的存在关系。
在具体的项目中,对象已经存在了,这时候如何对待对象,取决于我们要干什么,目的不同,可能导致对象间的关系不同。即使是同样两个对象,因为利用这俩对象完成的目标不同,也导致我们对其关系的设定有所不同。
(应该看到OO的目标固然是为了准确反应real world,但是OO的更大目标是为了提供一种描述方式来描述现实,以便以一种简便直观的方法来处理它。)
所以,我举那样一个例子,尽管不太合适。
也许,下一次,我还是设法从图形处理上弄个例子来吧。
22==========
原文(McWolf_sg于2001/04/25 14:28粘贴)
好象不是个人喜好吧。。。
--------------------------------------------------------------------------------
从不同的用户角度看,会有不同的用例视图
在不同的用例视图中,当然有可能存在不同等类与类的关系
但这种关系在给定的视图中应该是确定的。。。
3==========
原文(zhushuangmin于2001/04/25 14:31粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
"关联"和"依赖"是最容易区分的.把"关联"和"组合","聚合"搞混到是有,但很少有人把"关联"和"依赖"的.
关联是类之间的联系,是客观存在的,是在某活动中产生的,例如学生和老师,因为学生要听老师上课,所以学生和老师之间就有关联,而依赖是一种引用关系,
例如类中的某个方法的参数的类型是某个类,或方法种引用了某类的对象等.
不知这样解释行不?,可以讨论一下
31==========
原文(jackmoongong于2001/04/25 14:38粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
好象不是这样吧,关联里经常会有引用的。就如组合就标记为aggrecation by reference(or unspecifed),而聚合就为aggrecattion by value。我个人认为组合,聚合是一种强制程度的关系。如果你采用聚合,而散失了必要的灵活性,就采用组合,采用组合仍然不能解决其它问题就采用一般关联。
311==========
原文(zhushuangmin于2001/04/25 14:50粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
其实在实现层,关联,组合和聚合都差不多"当然仔细区分还是有"
3111==========
原文(jackmoongong于2001/04/25 15:06粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
同意!
4==========
原文(kinsing于2001/04/25 16:17粘贴)
答复:类之间设置成“关联”or“依赖”似乎全在个人喜好。。。 <990809>
--------------------------------------------------------------------------------
顺便问一下为何 我从邮箱里回应的邮件在消息组中没有?
Some notations of UML is similar with the notation of Coad/Yordon ,
so if you once read the books of OOA/OOD written by Coad/Youdon , you can grasp the the notation of UML through comparing
them to them of OOA/OOD .
UML Coad/Youdon
1 Association(UML) : instance connection (Coad/Youdon)+ Message link(Coad/Youdon)
2 Aggregation(UML) : whole/part structure (Coad/Youdon)
3 dependency(UML) : message link without association
for example :
A: the type of one parameter of a service uses the supplier class
B: the return value of a service uses the supplier class
5==========
原文(xingzeng于2001/04/25 16:36粘贴)
区分“关联”or“依赖”必须根据你的 requirement
--------------------------------------------------------------------------------
In one situation you may have two classes in association, and in other situation you may have them in dependency. This purely depends on your requirement. Normally you can based on the following rule to set the relation:
Assume you have two class A and B, if you set A and B in association, you can get A instance from B instance or get B instance from A instance depending the direction of the association; if you only set dependency relation, normally you do not have the capability to get the one class instance from other one.
6==========
原文(woodysteven于2001/04/25 20:46粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
让我来把它说得清楚点:
关联本身即是一种依赖。共同点是:
1,一个类依赖另一个类,意味着依赖的类在源代码级别引用了被依赖的类,你需要#include(c++)或import
2,如果被依赖的类的接口发生了改变,将导致依赖它的类重新编译。
不同点是:关联是一种更特殊的依赖。表现为:关联的类“静态”地引用了被关联类的实例变量,这种引用通常表现为被关联类以类属性的形式出现在关联类的类定义中,也可以表现为关联类引用了一个类型为被关联类的全局变量。相反,依赖却是比较动态的,通常表现为依赖的类的某个方法以被依赖的类作为其参数。依赖还有一种形式是:若class A 的某个方法创造了 class B 的实例,则class A依赖于class B。
若A既依赖B又和B关联,则它们是关联关系,由此可见,关联比依赖更强。
-
woodysteven
7==========
原文(woodysteven于2001/04/25 20:46粘贴)
回复: 类之间设置成“关联”or“依赖”似乎全在个人喜好。。。
--------------------------------------------------------------------------------
让我来把它说得清楚点:
关联本身即是一种依赖。共同点是:
1,一个类依赖另一个类,意味着依赖的类在源代码级别引用了被依赖的类,你需要#include(c++)或import
2,如果被依赖的类的接口发生了改变,将导致依赖它的类重新编译。
不同点是:关联是一种更特殊的依赖。表现为:关联的类“静态”地引用了被关联类的实例变量,这种引用通常表现为被关联类以类属性的形式出现在关联类的类定义中,也可以表现为关联类引用了一个类型为被关联类的全局变量。相反,依赖却是比较动态的,通常表现为依赖的类的某个方法以被依赖的类作为其参数。依赖还有一种形式是:若class A 的某个方法创造了 class B 的实例,则class A依赖于class B。
若A既依赖B又和B关联,则它们是关联关系,由此可见,关联比依赖更强。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -