Objective c Objecitive-C:聚合/合成是否用于确定强/弱引用

Objective c Objecitive-C:聚合/合成是否用于确定强/弱引用,objective-c,Objective C,我最近在这里读到了关于聚合和合成的内容,以及合成基本上是一种has-a关系,而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你 与此同时,我一直在学习objective-c内存管理以及强关键字和弱关键字。创建对象将拥有新变量,而创建对象将不拥有新变量 那么,我能不能得出这样的结论:强弱直接用于确定一个变量是复合变量还是聚合变量 谢谢 “强”和“弱”用于确定变量 是复合变量还是聚合变量 恰恰相反。查看实现,您可以获得设计的线索,但设计决定了实现,因为它是一个更高级别的概念 聚合和合成是两种

我最近在这里读到了关于聚合和合成的内容,以及合成基本上是一种has-a关系,而聚合不是。聚合似乎更像是一个熟人。我知道你,但我不拥有你

与此同时,我一直在学习objective-c内存管理以及强关键字和弱关键字。创建对象将拥有新变量,而创建对象将不拥有新变量

那么,我能不能得出这样的结论:强弱直接用于确定一个变量是复合变量还是聚合变量

谢谢

“强”和“弱”用于确定变量 是复合变量还是聚合变量

恰恰相反。查看实现,您可以获得设计的线索,但设计决定了实现,因为它是一个更高级别的概念

聚合和合成是两种包含关系:

  • 聚合是关系的一部分,而这些部分可能独立存在。也就是说,它们的存在与容器的使用寿命无关,因此您使用不表示所有权的弱引用来引用零件

  • 组合是一种has-a或owns-a关系,因此您使用一个表示所有权的强引用。一旦容器被破坏,零件也会被破坏

弱和强是用于内存管理的ARC所有权限定符:

  • strong指向并保留一个对象。它意味着所有权,因为只要强指针存在,对象就不会被释放
  • 指向但不保留对象。它并不意味着所有权,因为它不会影响对象的生命周期(这取决于其他地方是否存在强引用)
“强”和“弱”用于确定变量 是复合变量还是聚合变量

恰恰相反。查看实现,您可以获得设计的线索,但设计决定了实现,因为它是一个更高级别的概念

聚合和合成是两种包含关系:

  • 聚合是关系的一部分,而这些部分可能独立存在。也就是说,它们的存在与容器的使用寿命无关,因此您使用不表示所有权的弱引用来引用零件

  • 组合是一种has-a或owns-a关系,因此您使用一个表示所有权的强引用。一旦容器被破坏,零件也会被破坏

弱和强是用于内存管理的ARC所有权限定符:

  • strong指向并保留一个对象。它意味着所有权,因为只要强指针存在,对象就不会被释放
  • 指向但不保留对象。它并不意味着所有权,因为它不会影响对象的生命周期(这取决于其他地方是否存在强引用)

否——强引用和弱引用与内存管理有着特殊的联系。组合和聚合是更一般的设计概念。可以说它是实现这些设计决策的一种方法吗?我认为您在这方面走的是正确的。我一直在阅读这些概念,首先想到的是Objective-C强/弱属性参数。弱=骨料,强=复合材料。我同意antlersoft的观点,因为它们是更抽象的OOP概念,但是它们以强/弱的形式在Objective-C中表现出来。不,强引用和弱引用与内存管理有着特殊的联系。组合和聚合是更一般的设计概念。可以说它是实现这些设计决策的一种方法吗?我认为您在这方面走的是正确的。我一直在阅读这些概念,首先想到的是Objective-C强/弱属性参数。弱=骨料,强=复合材料。我同意antlersoft的观点,因为它们是更抽象的OOP概念,但是它们在Objective-C中以强/弱的形式表现出来。