我一直在互联网上搜索,似乎找不到任何能够专门回答我问题的内容。
据我所知,简单的关联并不意味着任何形式的生命依赖。
作曲是一种整体关系,两个阶级的生活是紧密相连的。例如,建筑和房间。没有建筑物就无法建造房间,如果建筑物“死亡”,房间也是如此,反之亦然。两者互相依赖。
我确实理解聚合是一种较弱的成分。例如,汽车和轮胎。但聚合是否意味着依赖整个方面?没有这些部分,整个存在吗?另外,在聚合中,部分只属于一个整体吗?
我发现了相互矛盾的答案......
我还有一个问题。一个简单的关联可以是一对多的关系吗?例如,我正在设计监狱管理系统,PrisonBlock有卫兵。如果我说一个警卫只被分配到一个区块。他们的生活显然不是彼此依赖的。但是,有一个完整的关系。或者在那里!?我很困惑。我看到它的方式,Block(整体)有Guards(部件)。这是关联还是聚合?为什么?我必须改变什么才能成为一个或另一个?协会甚至可以是一对多的关系!?
答案 0 :(得分:0)
聚合只是一个真实的问题。在你的例子中,汽车应该有轮胎。因为如果不是那么那不是汽车。但是,轮胎并不一定需要拥有汽车。简单来说就是Has-a relationship。
2.Association是两个独立类之间的关系,可以是任何类型,例如一对一,一对可以等。它连接两个完全独立的实体。这样想:
如果你的prisonBlock类可以在没有Guard类的情况下存在? 或者Guard类可以在没有你的prisonBlock类的情况下存在吗?
答案 1 :(得分:0)
在构图中,我们创建一个opject,在该类范围中定义,例如
class a:
b comObject = new b()
虽然在聚合中显示有一种关系,这意味着对象具有父子关系,但这并不意味着当父类死亡时孩子也死亡,因为父母只是做了一个深层复制
在关联的情况下我们只做一个浅拷贝,关联和聚合之间的区别是相关对象不能有另一个父