2013-09-24 7 views
1

처음에 나는 go googled javascript mediator vs observer와 거의 10 개의 링크를 읽었습니다.자바 스크립트 중재자 대 관찰자

또한 statckoverflow에서 검색하면 Mediator Vs Observer Object-Oriented Design Patternsmediator-vs-observer이 표시됩니다.

그러나 나는 아직도 그들 사이의 차이점에 대해 분명히 이해하지 못하고 있습니다.

누군가가 더 명확하게 설명 할 수 있을지 궁금합니다.

아마도 실제 예입니다. :)

감사합니다.


예를 만들려고했는데, 이것이 중재자의 패턴입니까?

코드 : 여기

var EventMediator = { 
    publish: function (target, message) { 
     var args = Array.prototype.slice.call(arguments, 2); 
     var msgs = target.messages || []; 
     for (var i = 0; i < msgs.length; i++) { 
      var msg = msgs[i]; 
      msg.callback.apply(msg.context, args); 
     } 
    }, 
    register: function (target, message, fn) { 
     target.messages = target.messages || []; 
     target.messages.push({ 
      context: target, 
      callback: fn 
     }); 
    } 
}; 

var t1 = {name: 'kk'}; 
var t2 = {name: 'gg'}; 

EventMediator.register(t1, "nameChanged", function() { 
    console.info("t1 name chagned"); 
}); 
EventMediator.publish(t1, "nameChanged"); 

나는 Mediator 메시지를 트리거 객체의 존재에 대해 알고 있어야 할 경우 알고 싶어?

답변

3

옵저버 패턴 : 관찰 된 개체 특정 이벤트가 발생하면 통보해야합니다 (청취자 일명) 관찰자의 자신의 목록을 관리합니다.

중재자 패턴 : 관찰 된 객체가 관찰자의 목록 인식하지이다는 관찰 물체와 관찰자 간의 매핑을 만드는 외부 엔티티가있다.

+0

내 업데이트를 확인할 수 있습니까? 나는 예제를 추가한다. – hguser

+0

두 패턴의 믹스처럼 들립니다. 중재자 엔티티가 있지만 매핑 자체를 유지하는 대신 대상에 관찰자를 저장합니다. – fiddler