- 채널는 요소 유형에게 E. 포함
- 채널은 을 갖는다 요소에 채널에 대한 액세스를 제공하는 포트
다음과 같이 표시되어야합니다.조성 및 순환 종속성
이들은 모두 자체를 참조 할 필요844,.. 또한
(아직 완료되지 않았으므로) 채널 IMPL 건축시 포트 IMPL 자체의 shared_ptr을 제공 할 수
- 둘 다 강력한 참조를 사용하면 결코 해제되지 않습니다.
- 일부 사용자 코드는 나중에 사용할 수 있도록 포트 포인터를 저장하려고 할 수 있습니다. 따라서 채널이 아직 존재해야합니다!
weak_ptr로 원을 깨면 채널이 조기에 파괴 될 수 있습니다!
두 인터페이스를 병합하지 않고 따라야 할 가장 좋은 패턴은 무엇입니까 ??
편집 : @Edwin 그래, 난 이미 구성의 장점 기존의 토론 ... 내가 찾고 있어요 대답은 기술보다 더 윤리적입니다 ... 실질적으로
을 확인했다 합성 된 객체가 작곡가에 접근 할 필요가있을 때, 건축 시간에 'this'의 메모리 관리와 유용성이 부족한 C++ 같은 언어로?
저는 고유 한 솔루션이 컴포저와 컴포지션 통신 문제를 해결하기 위해 동일한 클래스의 모든 구성 요소 인터페이스를 구현하는 것이라고 생각합니다. 그리고 'has-a'관계에 'is-a'관계가 나타나는 독특한 독특한 클래스의 특정 견해를 제공하십시오 ... 그런 시나리오에서는 모든 구성 이점이 손실됩니다!
아직 눈치 챘을 지 모르겠으나, 사이드 바에있는 많은 주제가 당신이 요구하는 것과 굉장히 비슷하게 들립니다. 질문을 게시하기 전에 먼저 체크 아웃 했습니까? – Edwin