2012-12-21 3 views
1

최근에 여기에서 집계 및 구성에 대해 읽었으며 기본적으로 구성이 관계가 있고 집계가 아닌 방법에 대해 읽었습니다. 집계는 더 친숙한 것 같습니다. 나는 너에 대해 안다. 그러나 너를 소유하지 않는다.Objecitive-C : Strong/Weak References를 결정하는 데 사용되는 집계/작문입니다.

동시에 나는 객관적인 - c 메모리 관리와 강력하고 약한 키워드에 대해 학습 해왔다. 강력한 것은 객체를 생성하는 것이 새로운 변수를 소유하고 약한 객체는 소유하지 않을 것입니다.

그래서 강하고 약한 변수가 변수가 복합 변수 또는 집합 변수가 될 것인지를 결정하는 데 직접 사용된다는 결론을 내릴 수 있습니까?

감사

강하고 약한
+4

아니요 - 강함 및 약한 참조는 메모리 관리와 관련이 있습니다. 컴포지션 및 집계는보다 일반적인 디자인 개념입니다. – antlersoft

+0

이러한 디자인 결정을 구현하는 방법이라고 할 수 있을까요? – Oscar

+0

나는 당신이이 일로 바른 길에 있다고 생각합니다. 나는이 개념들을 읽었으며 Objective-C strong/weak 속성 params가 가장 먼저 떠오른 것들이다. weak = 집합체, strong = 복합체. 나는 그들이 더 추상적 인 OOP 개념이라는 점에서 antlersoft에 동의하지만 Objective-C로 강하고 약한 형태로 나타납니다. – i2097i

답변

1

변수 복합 또는 집계 변수가 될 것입니다 여부를 결정하는 데 사용됩니다?

반대입니다. 구현을 살펴보면 설계의 단서를 얻을 수 있지만 상위 수준 개념이기 때문에 설계가 구현을 결정합니다. 부품이 존재하면서 독립적

  • 집계 관계는 부품의입니다

    응집 조성물 포함 관계 두 가지 종류이다. 즉, 그 존재는 컨테이너의 수명과 관련이 없기 때문에 소유권을 암시하지 않는 약한 참조를 사용하여 부품을 참조하십시오.

  • 구성은 has-a 또는 owns-a 관계이므로 소유권을 의미하는 강력한 참조를 사용합니다. 컨테이너가 파손되면 부품도 파기됩니다.

약한 및 강한 소유권 메모리 관리를 위해 사용 ARC의 규정이다 :

  • 장점 및 목적을 유지한다. 강력한 포인터가 존재하는 한 오브젝트가 해제되지 않기 때문에 소유권을 의미합니다.
  • 약한 포인트가 있지만 개체를 ​​보유하지 않습니다. 객체의 수명에 영향을 미치지 않기 때문에 소유권을 의미하지는 않습니다 (다른 곳에서는 강력한 참조가 존재 함).
관련 문제