【发布时间】:2012-09-18 05:09:26
【问题描述】:
我正在尝试确认我对关联、聚合和组合的代码的理解。就这样吧。
聚合:有一个。它有另一个类型的现有对象
public class Aggregation
{
SomeUtilityClass objSC
public void doSomething(SomeUtilityClass obj)
{
objSC = obj;
}
}
组成:由另一个对象组成
public class Composition
{
SomeUtilityClass objSC = new SomeUtilityClass();
public void doSomething()
{
objSC.someMethod();
}
}
联想:我对此有两种看法。
-
当一个类与另一个类关联时。因此,以上两个都是关联的例子。
-
关联是一种较弱的聚合形式,其中类不保留对其接收的对象的引用。
public class Association { //SomeUtilityClass objSC /*NO local reference maintained */ public void doSomething(SomeUtilityClass obj) { obj.DoSomething(); } }
我的理解正确吗?我已经阅读了相互冲突的文章 here 和 here,所以我真的不确定该关注哪一篇。我的理解似乎与第一个链接一致。我觉得第二个链接是错误的,或者我可能没有正确理解它。
你怎么看?
【问题讨论】:
-
聚合和关联在我的经验中不是常用的术语。对于了解其定义的微妙之处,我不会大惊小怪。还有更多有趣的概念供您花时间研究。
-
感谢Servy;但是我上面描述的理解正确吗?
-
@Servy 我知道这是一篇旧文章,但有时我一直在努力解决同样的问题,因为我正在自己学习。我想知道,根据您上面的评论,您建议学习哪些概念?
标签: c# oop uml class-diagram