C++에서 Composite 디자인 패턴을 사용하여 객체 그룹을 만들고 조작 할 수 있습니다. 내가 만났던 문제가 잎과 복합 재료는 동일하게 취급하고 있으며, 복합 잎 및 복합 구성 될 수 있기 때문에 개체가 명령이 복합에 발행 한 번 할 때보다 더에서 작동 할 수 있도록, 그것은 확실히 가능하다는 것이다.복합 디자인 패턴을 사용하여 다른 유형의 객체를 조작하려면 객체가 두 번 이상 작동하지 못하도록하는 방법이 있습니까?
예를 들어, 복합 그룹 1은 대상물 (A)이 두 번에 작동되며, 복합 그룹 2를 ON 조작하면 복합 그룹 2는 복합 그룹 1과 오브젝트 A를 함유하는 생성 된 다음 객체 A 및 B를 포함한다. 일부 응용 프로그램의 경우 이것은 문제가되지 않는다고 생각합니다.하지만 복합 객체에 발행 된 명령에 대해 고유 한 객체는 한 번만 조작하면 내 용도로 사용할 수 있습니다.
이 문제를 해결하는 관용적 인 방법이 있나요, 중 일부 객체의 멤버 함수의 다중 호출을 방지 또는 복합에 포함되는 것을 한 번 이상 개체를 방지하는 방법?
-
업데이트 : 으로 "관용"나는 이러한 유형의 문제를 처리하는 "전통"또는 "승인"방법을 의미한다. 나는 이것이 단지 확립 된 해결책이있는 공통적 인 문제라고 생각하고 있다고 생각한다.
문제는 객체 A에 두 개의 '부모'가 있다는 것입니다. 여기에서 성취하려는 것은 무엇입니까? 왜이 개체는 두 그룹으로 구성되어 있습니까? 그것이 있어야만한다면, 작업을 적용하는 표준 아이디어는 예상대로 작동하지 않을 것입니다. 당신은 어떻게하면 '이'작업을 수행 한 객체를 추적해야하고, 그렇지 않은 경우 객체에서만 수행해야합니다. –
가 무엇을 달성하려고하는 그룹의 유연성은 개별 개체에서하지만 개체 및 기존 그룹의 모든 조합에서뿐만 아니라 만들 수있다 - 기본적으로 복합 패턴이 잎을 치료 할 수있는, 오른쪽, 용이며 무엇을 같은 복합 재료 구성 요소 인터페이스를 통해? – zebraman