我最近一直在这里阅读有关聚合和组合的信息,以及组合基本上是一种有关系而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你。
同时我一直在学习objective-c内存管理和强弱关键字。强将是创建对象将拥有新变量,而弱则不会。
那么,我是否可以得出这样的结论,即强和弱直接用于确定变量是复合变量还是聚合变量?
谢谢
我最近一直在这里阅读有关聚合和组合的信息,以及组合基本上是一种有关系而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你。
同时我一直在学习objective-c内存管理和强弱关键字。强将是创建对象将拥有新变量,而弱则不会。
那么,我是否可以得出这样的结论,即强和弱直接用于确定变量是复合变量还是聚合变量?
谢谢
strong 和 weak 用于确定一个变量是复合变量还是聚合变量?
恰恰相反。查看实现,您可以了解设计的线索,但设计决定了实现,因为它是更高层次的概念。
聚合和组合是两种包含关系:
聚合是关系的一部分,而部分可能独立存在。也就是说,它们的存在与容器的生命周期无关,因此您使用不暗示所有权的弱引用来引用这些部分。
组合是拥有或拥有的关系,因此您使用暗示所有权的强引用。一旦容器被破坏,部件也会被破坏。
weak 和 strong 是用于内存管理的 ARC 的所有权限定符: