Objective c Objecitive-C:聚合/合成是否用于确定强/弱引用
我最近在这里读到了关于聚合和合成的内容,以及合成基本上是一种has-a关系,而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你 与此同时,我一直在学习objective-c内存管理以及强关键字和弱关键字。创建对象将拥有新变量,而创建对象将不拥有新变量 那么,我能不能得出这样的结论:强弱直接用于确定一个变量是复合变量还是聚合变量 谢谢 “强”和“弱”用于确定变量 是复合变量还是聚合变量 恰恰相反。查看实现,您可以获得设计的线索,但设计决定了实现,因为它是一个更高级别的概念 聚合和合成是两种包含关系:Objective c Objecitive-C:聚合/合成是否用于确定强/弱引用,objective-c,Objective C,我最近在这里读到了关于聚合和合成的内容,以及合成基本上是一种has-a关系,而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你 与此同时,我一直在学习objective-c内存管理以及强关键字和弱关键字。创建对象将拥有新变量,而创建对象将不拥有新变量 那么,我能不能得出这样的结论:强弱直接用于确定一个变量是复合变量还是聚合变量 谢谢 “强”和“弱”用于确定变量 是复合变量还是聚合变量 恰恰相反。查看实现,您可以获得设计的线索,但设计决定了实现,因为它是一个更高级别的概念 聚合和合成是两种
- 聚合是关系的一部分,而这些部分可能独立存在。也就是说,它们的存在与容器的使用寿命无关,因此您使用不表示所有权的弱引用来引用零件
- 组合是一种has-a或owns-a关系,因此您使用一个表示所有权的强引用。一旦容器被破坏,零件也会被破坏
- strong指向并保留一个对象。它意味着所有权,因为只要强指针存在,对象就不会被释放
- 弱指向但不保留对象。它并不意味着所有权,因为它不会影响对象的生命周期(这取决于其他地方是否存在强引用)
- 聚合是关系的一部分,而这些部分可能独立存在。也就是说,它们的存在与容器的使用寿命无关,因此您使用不表示所有权的弱引用来引用零件
- 组合是一种has-a或owns-a关系,因此您使用一个表示所有权的强引用。一旦容器被破坏,零件也会被破坏
- strong指向并保留一个对象。它意味着所有权,因为只要强指针存在,对象就不会被释放
- 弱指向但不保留对象。它并不意味着所有权,因为它不会影响对象的生命周期(这取决于其他地方是否存在强引用)