日期:2014-05-17  浏览次数:20979 次

请问c#类的关联关系----关联聚合组合在代码层面的实现是否是一样的
如题。它们都是用成员变量的形式来实现的。
除此之外,除了语意上分析外,还可以单纯从代码上分析出两个类之间到底之间的关系吗?
有人说。看构造函数
如果构造函数内部有

_obj=new Obj();
必然是组合或者聚合。我总觉得很多时候表示组合或聚合的两个类的实例并不一定在构造函数中实现。
会延迟实例化
而且有时候构造的时候就要指定自身的实例和某一个其他实例的关系。也就是说构造的时候也会有关联关系。
另外,在我们实际编写代码的时候,一定要非常清晰的指定两个对象之间的关系吗?还是有时候根本不需要在意。
C# ?UML 关系

------解决方案--------------------
嗯,你是说的“组合或者聚合”。组合和聚合的字眼差别并不明显,与普通的关联的差别比较明显。

通常只要从“动态模型”上来理解就行了,不必在一些只有静态意义而没有什么动态意义的概念过度细分。

整个UML的概念符号,了解十分之一就够了,实际上UML过分臃肿了,因此在15年前出现了各种敏捷开发,他们都是强调对传统的UML规定进行弱化。