1
最近我一直在閱讀有關聚合和合成的內容,以及合成如何基本上是一種有 - 一種關係,而聚合則不是。聚合似乎更像是一個熟人。我瞭解你,但我不擁有你。Objecitive-C:是用於決定強/弱參考的聚合/合成
與此同時,我一直在學習Objective-C內存管理以及強和弱關鍵字。創建對象會擁有新的變量,並且它不會。
那麼,我可以得出結論:強和弱直接用於確定一個變量是否將成爲一個複合變量或聚合變量?
感謝
最近我一直在閱讀有關聚合和合成的內容,以及合成如何基本上是一種有 - 一種關係,而聚合則不是。聚合似乎更像是一個熟人。我瞭解你,但我不擁有你。Objecitive-C:是用於決定強/弱參考的聚合/合成
與此同時,我一直在學習Objective-C內存管理以及強和弱關鍵字。創建對象會擁有新的變量,並且它不會。
那麼,我可以得出結論:強和弱直接用於確定一個變量是否將成爲一個複合變量或聚合變量?
感謝
強弱被用於確定如果一個變量 將是一個複合或聚集變量?
恰恰相反。看看實現,你可以得到設計的線索,但設計決定了實現,因爲它是一個更高層次的概念。
聚合和組合兩種包含關係:
聚合是一個關係部分組成,而部分可以獨立地存在。也就是說,它們的存在與容器的壽命沒有關係,因此您使用不暗示所有權的弱引用來指代這些部分。
成分是has-a或owns-a的關係,因此您使用強參考意味着所有權。一旦容器被銷燬,零件也會被銷燬。
弱和強是用於內存管理ARC的所有權限定符:
沒有 - 強和弱的引用特別與內存管理有關。組合和聚合是更一般的設計概念。 – antlersoft
難道這是一種實現這些設計決策的方式嗎? – Oscar
我認爲你在這個正確的軌道上。我一直在閱讀這些概念,並且Objective-C強/弱屬性params是首先想到的。弱=聚合,強=複合。我同意antlersoft的觀點,他們是更抽象的OOP概念,然而他們以強/弱的形式表現在Objective-C中。 – i2097i