今天和一个家伙对一个uml图有意见分歧,他说我画的不对。说我把一个引用(这是他用的词,我从来不知道uml里引用到底是什么东西)画成了组合。我后来想想可能他说的引用就是依赖的意思。我先说说我的理解,组合就是说某个类作为另一个类的成员变量,比如现在有类B,类A定义如下:
[code="java"]
public class A{
B b;
}
[/code]
那么A和B就是组合关系,A组合了B,难道说A和B之间必须要有实际上的整体部分关系才能构成组合关系吗。我认为组合就是B作为A的一部分,增强了A的功能,这就是组合。
然后是依赖,如果B是A某个方法的参数或方法中的局部变量,B就依赖于B。
现在极度迷茫中,请指教,谢谢
[b]问题补充:[/b]
[quote "lovewhzlq"]你的理解基本上是正确的[/quote]
基本上是什么意思,我就是不清楚,所以想找清楚的答案。
UML是让各个人之间能更好的理解,如果像这样,还要考虑情形进行区分恐怕只能让所有人都不理解设计。对于整体和局部,每个人都有自己的看法
[b]问题补充:[/b]
----------最佳答案的评论-------------------
对大部分人来说,你说的是对的。我对组合和依赖的理解确实是错误的。
然而我不明白uml为什么要搞的这么复杂,非要扯出这么多难以理解的概念。就像我问题中说的,uml的本意是为了让大家清楚地理解你的设计,但按uml现在的情况看,很多人都不是很清楚这些概念,更不要说清楚这些概念间的区别,画出来的uml图各有各的看法。如果uml和具体的代码结合起来,组合(不再区分组合聚合)就是作为成员变量,依赖就是作为方法参数,那么看得uml图就知道你的代码将会是什么样子,各人在理解上也不会有偏差,uml更简单。难道这样不好,还是为了抽象出一个语言无关的层?
另外,感谢lovewhzlq的回答。我完全同意你的看法,不要怪我为什么而没选择你的答案为最佳答案