javascript 디자인 모델 C 브리지 모델 원리 와 응용 사례 분석
소개:만약 에 소프트웨어 시스템 에 두 개 이상 의 독립 적 인 변화 차원 이 존재 한다 면 브리지 모델 을 통 해 이런 차원 을 분리 시 켜 이들 이 독립 적 으로 확장 하고 시스템 이 단일 한 직책 원칙 에 더욱 부합 하도록 할 수 있다.
정의:추상 적 인 부분 과 그 실현 부분 을 분리 하여 그들 이 모두 독립 적 으로 변화 할 수 있 도록 한다.그것 은 대상 구조 형 모델 로 손잡이 모델 이나 인터페이스 모델 이 라 고도 부른다.
장면:우 리 는 간단 한 원 을 그 려 서 원 의 반지름 과 색채 라 는 두 차원 을 분리 시 켜 모든 차원 을 단독으로 확장 할 수 있 게 한다.많은 친구 들 이 이렇게 간단 한 수요 로 내 가 5 줄 코드 를 실현 했다 고 말한다.왜 이렇게 잔소리 야?
우리 가 여기 서 공유 하 는 것 은 디자인 사상 이다.당신 의 시스템 이 충분히 복잡 할 때 어떤 방식 으로 최적화 해 야 하 는 지 하 는 것 이다.예 를 들 어 가장 작은 예 로 이 치 를 분명하게 말 하 는 것 이지 모든 비슷 한 부분 을 반드시 이렇게 써 야 하 는 것 은 아니다.어떤 장면 이 어떤 모델 을 필요 로 하 는 지,모델 을 사용 할 필요 가 있 는 지 는 네가 스스로 고려 해 야 한다.
예시:
var CircularColor = {};
CircularColor.redCircular = function(){
this.getColor = function(){
return 'red';
}
}
CircularColor.greenCircular = function(){
this.getColor = function(){
return 'green';
}
}
var CircularRadius = {};
CircularRadius.small = function(){
this.x = this.y = 0;
this.radius = 5;
this.color = null;
this.setColor = function(circularColor){
this.color = circularColor.getColor();
}
this.draw = function(){
console.log(' ! :' + this.color + ' :x:' + this.x + ' y:' + this.y + ' :' + this.radius);
}
}
CircularRadius.big = function(){
this.x = this.y = 0;
this.radius = 20;
this.color = null;
this.setColor = function(circularColor){
this.color = circularColor.getColor();
}
this.draw = function(){
console.log(' ! :' + this.color + ' :x:' + this.x + ' y:' + this.y + ' :' + this.radius);
}
}
var color = new CircularColor.redCircular();
var radius = new CircularRadius.big();
radius.setColor(color);
radius.draw();// ! :red :x:0 y:0 :20
이 절 은 한 가지 점 을 말 해 야 한다.브리지 모델 은 자바 의 소개 에서 독립 된 후의 차원 은 추상 층 에서 관련 관 계 를 구축 하 는 것 이다.js 는 추상 층 이 없 기 때문에 두 개의 독립 차원 은 하나의 setColor 방법 으로 관련 관 계 를 구축한다.브리지 모드 요약:
장점:
*브리지 모드 는 시스템 의 확장 성 을 향상 시 켰 고 두 가지 변화 차원 에서 한 차원 을 임의로 확장 했다.모두 기 존 시스템 을 수정 하지 않 아 도 되 고 스위치 원칙 에 부합된다.
*대부분 상황 에서 브리지 모델 은 다 층 집적 방안 을 대체 할 수 있다.
*인터페이스 와 그 실현 부분 을 분리 하여 실현 이 각자 의 차원 에 따라 변화 할 수 있 도록 한다.
단점:
*브리지 모드 의 사용 은 시스템 의 이해 와 디자인 난이 도 를 증가 시 킬 수 있 습 니 다.
*브리지 모델 은 시스템 에서 두 개의 독립 적 인 변화 차원 을 정확하게 식별 해 야 하기 때문에 사용 범 위 는 한계 가 있다.
적용 필드:
*한 종류 에 두 개 이상 의 독립 적 인 변화 차원 이 존재 하고 이런 차원 은 모두 독립 적 으로 확장 해 야 한다.
관심 있 는 친 구 는 온라인 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에 따라 라이센스가 부여됩니다.