2011-11-24 8 views
3

현재 화면 캡처 소프트웨어를 디자인하려고합니다.이 순환 종속성을 제거하는 방법

내가 가지고있는 하나의 디자인 질문은 입니다. PictureGetter와 PictureProcessor 간의 순환 종속성을 제거 할 수 있는지 알고 싶습니다.

getter는 그림이 준비되었음을 알리기 위해 프로세서를 호출해야합니다. 프로세서는 게터에게 그림 처리가 완료되었음을 알려야합니다.

이 두 요소는 별도의 스레드에 있고 데이터를 직접 공유 할 수 없으며 데이터를 공유하지 않으려는 경우에만 대상 개체의 구성원 호출을 해당 개체의 대기열에 추가 할 수 있습니다. (예를 들어 queue.add(&PictureProccessor::sendPicture,picture))

enter image description here

+0

http://www-subatech.in2p3.fr/~photons/subatech/soft/carnac/CPP-INC-1.shtml – Cyclonecode

+0

예, 모든 것을 선언 할 수 있음을 알고 있습니다. 이것은 주위에 디자인 할 수있는 방법이 있는지에 대한 질문입니다. – Lalaland

+0

그리고 귀하의 질문은 무엇입니까? – themel

답변

6

사용 리소스 관리자, 그 모두를 인식합니다. getter는 관리자와 처리 할 그림을 대기열에 넣을 수 있으므로 관리자는 처리를 위해 사용할 수있는 프로세서의 "풀"을 가질 수 있습니다. 프로세서는 자원 관리자로 처리 된 그림을 대기열에 넣고 적절한 게터에 알릴 수 있습니다. 이 패턴에 대해 펑키 한 이름이있을 것 같지만 지금 당장은 그것을 기억할 수 없습니다.

+0

그래,이게 내가 찾고 있었던 (그리고 그것은 또한 나의 그림 관리 문제를 해결한다). 고맙습니다. – Lalaland

0

게터에서 프로세서로 1 요소 큐를 만들 수 있습니다.

게터가 사진을 보냅니다. 프로세서가 완료되면 대기열이 비어 있습니다.

관련 문제