javascript 디자인 모델 C 중개자 모델 원리 와 용법 실례 분석
소개:전단 개발 과정 에서 구성 요소 와 구성 요소 간 의 통신 은 특히 흔 합 니 다.한 구성 요소 의 change 는 여러 구성 요소 의 change 를 일 으 켜 야 합 니 다.이 는 구성 요소 와 구성 요소 간 에 복잡 한 다 중 관계 체인 이 존재 해 야 합 니 다.어떻게 이러한 관 계 를 유지 하 는 복잡 도 를 줄 이 고 구성 요소 와 구성 요소 간 에 낮은 결합 을 실현 합 니까?이것 이 바로 우리 가 곧 소개 할 중개자 모델 이다.
정의:하나의 중개 대상(중개 자)으로 일련의 대상 의 상호작용 을 밀봉 하고 중개 자 는 대상 으로 하여 금 명시 적 인 상호 인용 이 필요 하지 않 게 하여 결합 을 느슨 하 게 하고 그들 간 의 상호작용 을 독립 적 으로 변화 시 킬 수 있다.중개 자 모델 은 조정자 모델 이 라 고도 부 르 는데 대상 행위 형 모델 이다.
장면:우 리 는 인 사 를 하 는 작은 demo 를 실현 합 니 다.소 가 중개자 에 게 메 시 지 를 보 냅 니 다.중개자 가 받 은 후에 risker 에 게 소 에 게 메 시 지 를 보 냅 니 다.
예시:
var Mediator = {
Niuniu: null,
Risker: null,
showMessage: function(component, message){
console.log(component.getName() + ' :' + message);
if(component.getName() === 'Niuniu'){
this.Risker.showMessage('hello Niuniu');
}
}
}
var Niuniu = function(){
this.name = 'Niuniu';
this.getName = function(){
return this.name;
}
this.showMessage = function(message){
Mediator.showMessage(this, message);
}
}
var Risker = function(){
this.name = 'Risker';
this.getName = function(){
return this.name;
}
this.showMessage = function(message){
Mediator.showMessage(this, message);
}
}
var niuniu = new Niuniu();
var risker = new Risker();
Mediator.niuniu = niuniu;
Mediator.Risker = risker;
niuniu.showMessage('hello Risker');
// Niuniu :hello Risker
// Risker :hello Niuniu
이 예 에서 Niuniu 와 Risker 는 동료 대상 이 라 고 부 르 는데 동료 대상 간 에 관련 관계 가 있어 다른 대상 에 게 영향 을 받 을 수도 있 고 다른 대상 에 게 도 영향 을 줄 수 있다.Mediator 는 중개자 라 고 하 는데 사실은 중개자 모델 은 기 존의 그물 모양 의 관계 구 조 를 Mediator 를 중심 으로 하 는 별 모양 구조 로 바 꾸 었 을 뿐이다.관련 관계 가 적지 않 고 Mediator 에서 집중 적 으로 처리 되 었 습 니 다.
중개자 모델 요약:
장점:
*중개 자 모델 은 동료 대상 간 의 상호작용 을 간소화 하고 중개 자 와 동료의 한 쌍 의 다 중 상호작용 으로 원래 동료 간 의 다 중 상호작용 을 대체 했다.
*각 동료 대상 의 결합 을 해제 하고 중개 자 는 각 동료 대상 간 의 느슨 한 결합 에 유리 합 니 다.
단점:
*중개자 에 게 대량의 동료 간 의 상호작용 디 테 일이 포함 되 어 있어 중개자 가 매우 복잡 하고 유지 하기 어렵다.
적용 필드:
*시스템 에서 대상 간 에 복잡 한 인용 관계 가 존재 하고 시스템 구조 가 혼 란 스 러 워 이해 하기 어렵다
*한 대상 은 다른 많은 대상 을 인용 하고 이 대상 과 직접 통신 하기 때문에 이 대상 을 재 활용 하기 어렵다.
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.
자 바스 크 립 트 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,javascript 대상 입문 강좌,JavaScript 오류 및 디 버 깅 기술 요약,JavaScript 데이터 구조 와 알고리즘 기술 총화과JavaScript 스 트 리밍 알고리즘 및 기술 총화.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.