微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oop – 关联和聚合之间的差异

我理解聚合和组合之间的区别,但我在关联方面有点挣扎.我目前的理解是,当“它们彼此使用”时,类之间存在关联,例如,在方法调用期间将一个对象传递给另一个对象.也可以看看:

http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit

两个对象都是独立存在的,与聚合相反,没有对象是另一个对象的容器类.这是否意味着两个对象必须有其他对象的副本(例如1:m关系)或者如何“存储”关联.任何反馈都将非常感谢.

来自UML上层建筑2.4.1:

An association declares that there can be links between instances of the associated types. A link is a tuple with one value for each end of the association,where each value is an instance of the type of the end. (UML Superstructure,Page 37)

没有更多,没有更少.而且很模糊.因此,它也很难理解.我定义的内容(在我教授的课程中)是从依赖到组合的链接层次结构,其中:

>从A到B的依赖意味着A使用B但是间接地(例如通过接收它的实例并将它们转发给其他对象).>从A到B的关联意味着A直接使用B(例如通过调用方法)>从A到B的聚合意味着B是A的一部分(语义上),但B可以共享,如果删除A,则不删除B.请注意,这并未说明如何实现“部分”.>从A到B的组合就像聚合,其中B不能被共享,如果A被删除,它的所有聚合(B)也被删除.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐