Javascript 모드 인 스 턴 스 관찰자 모드

2823 단어
정원 에 많은 소 들 이 이미 이런 글 을 썼 지만 대부분 예 는. NET 이다. 오늘 나 는 JS 의 사용 사례 를 들 려 고 한다. 관심 이 있 는 친 구 는 먼저 소 들 의 것 을 알 아 볼 수 있다. 예 를 들 어 이 회 군 형님 의 디자인 모델 편 에서 관찰자 의 그 절 이다.
http://www.cnblogs.com/Terrylee/archive/2006/10/23/Observer_Pattern.html
제 가 이 모델 에 대한 이 해 를 말 해 보 겠 습 니 다. 그 사상 핵심 은 모든 관찰 대상 이 대상 데이터 의 변화 에 따라 바 뀌 고 관찰 대상 은 똑 같은 변화 행 위 를 통 해 제약 을 받 아야 합 니 다. 이 제약 은 관찰 대상 이 관찰 기 에 제공 하 는 통 일 된 인터페이스 입 니 다.관찰 기 는 데 이 터 를 바 꾸 는 행 위 를 개발 할 것 이다.
JS 는 약 한 유형의 스 크 립 트 입 니 다. 많은 것 을 약속 해 야 합 니 다.. NET 처럼 인터페이스의 제약 이 있 지 않 습 니 다. 쓸데없는 말 은 하지 않 고 우 리 는 인 스 턴 스 를 직접 봅 니 다.
관찰자 실례
 
  
var ObserverObj = { /**//* */
FirstName: "Max",
LastName: "Gan",
Id: 1
}
var ObserverManager = { /**//* */
Observers:[], /**//* */
AddObserver: function(item){/**//* */
this.Observers.push(item);
},
Change: function(obj){ /**//* */
for(var item in obj){
ObserverObj[item] = obj[item];
}//
for(var i = 0,len = this.Observers.length; i < len; i++){
var item = this.Observers[i];
item.Display(); // , Display;
}
}
}
var Header = function(){ /**//* Header*/
this.Display = function(){
alert(ObserverObj.FirstName);
}
}
var Content = function(){ /**//* Content*/
this.Display = function(){
alert(ObserverObj.LastName);
}
}
var Foot = function(){ /**//* Foot*/
this.Display = function(){
alert(ObserverObj.Id);
}
}

위의 예 는 Observer Manager 가 바 인 딩 방법 (AddObserver) 만 제공 하고 다른 바 인 딩 을 취소 하 는 것 과 같은 코드 기술 을 제공 합 니 다. 생각해 보면 알 수 있 습 니 다. 사실 이 코드 들 의 최종 목적 은 Observer 데 이 터 를 바 꾸 는 것 입 니 다. 다른 대상 들 도 데이터 의 변화 에 따라 해당 하 는 응답 을 할 것 입 니 다. OK, 지금 우 리 는 그들 을 연결 합 니 다.
 
  
/*** ***/
ObserverManager.AddObserver(new Header());
ObserverManager.AddObserver(new Content());
ObserverManager.AddObserver(new Foot());

마지막 으로 저희 가 쓰 면 어떻게 쓰 죠?(저능 한 문제.. 하하) 예 를 들 어 보 자.
사용 방법
 
  

변경 First Name
LastName 변경
변경 Id

나 는 모든 예 를 첨부 했 으 니, 관심 있 는 친 구 는 다운로드 해서 볼 수 있다.
Javascript 관찰자 모드. rar
한 사람 이 얼마나 멀리 갈 수 있 느 냐 는 누구 와 동행 하 느 냐 에 달 려 있다.

좋은 웹페이지 즐겨찾기