2013-01-09 3 views
1

좋은 의견 패턴을 찾고 있는데, 아마도 질문이 다르게 요청 될 수 있습니다. 알려주세요. 그것을 설명하려고합니다.객체 지향 피드백 패턴

기본적으로 내가 찾고있는 것은 올바른 피드백 개념을 만드는 올바른 방법입니다. 예를 들어 Trigger 개체는 다른 Target 개체에서 Trigger 개체에 어떤 종류의 기대치 (어쩌면 하나 이상의 매개 변수가 있음)가있는 함수를 트리거합니다. 이 트리거 된 호출은 또한 다른 종류의 객체로부터 더 많은 함수 호출을 할 수 있으므로 Trigger 객체가 결과 매개 변수를 가진 Trigger 객체에 대한 응답을 제공하기 위해 어떤 종류의 액세스가 필요합니다. Trigger 객체는 예상 객체와 비교하여 객체를 받으면 반응합니다.

전체 시스템에서 기능을 보급해야하므로 좋은 개념이 필요합니다. 중요한 점은 소스 코드가 C++ Qt로 작성된 것입니다.

답변

0

나는 Observer pattern을 제안합니다.

Observable 기본적으로 어떤 작업에서 수신 대기하도록 해당 개체에 등록 된 Observers 집합을 유지 관리하는 개체가 있습니다. Observable 개체가 이러한 동작을 수행하면 Observers에 작업이 이루어 졌음을 알리고 이에 대응할 수 있습니다.

따라서 귀하의 경우 TriggerObservable 개체이고 Target 개체는 Observers이됩니다. Target 개체는 Trigger 개체에 등록 할 수 있으며 Trigger 작업 (의견 보내기)에 반응 할 수 있습니다.

+0

잘 모르겠습니다.이 패턴을 완전히 사용할 수 있습니다. 어쩌면 내가 질문을 다르게 형성해야 할 필요가있다. 이 경우 Observable 객체의 목록을 유지하는 Observer 객체를 하나만 갖고 싶습니다. 'Observer' 객체는 특정 'Observable' 객체에 대한 특정 동작 (예 : 테스트 목적)을 트리거합니다. 'Observable' 객체는 모든 통지에 반응하는 Observer 객체에만 통지하며, 각 통지마다 다르게 대응할 수 있어야합니다. 이 경우'Observer'는 모든 Observable 객체에 대한 기대 목록을 가져야합니다. 아니면 나는 많은 것을 망쳐 놓고 있니? – krizajb

+0

*'Observable '객체가 Observable 객체에서 특정 액션을 트리거합니다. * 이상하게 들립니다. '관찰 가능한'패턴 의도는 그 행동에 반응하는 1-N'관찰자 '로 1 개의'관찰 가능한 '객체를 갖는 것이지 누가 그 행동을 시작했는지는 중요하지 않다. 'event-listener' 시스템 또는'publish-subscribe'라고도합니다. 귀하의 설명에서, 나는 왜 '옵서버'가 실제로 그것을 시작했는지에 대한 행동을 알리는 이유를 이해하지 못한다. (어쩌면 당신은 단지 '관찰 가능'과 '옵서버'의 전환을 바꾸고있을 뿐이다.) – mipe34

+0

네, 정확하게 여기 있습니다 :) OK, 1 개의 Observable 객체가 있습니다.이 객체는 특정 Observer 객체에 대해 몇 가지 동작을 트리거하고 Observable 객체에 대한 응답으로 응답합니다. 그런 다음 알림을 예상 결과와 비교하고 그에 대한 반응을 보냅니다. – krizajb