[디자인 모드]javascript 어댑터 모드
4317 단어 JavaScript
설명:어댑터 모드 는 일반적으로 사용 할 인 터 페 이 스 를 위해 본 응용 이나 본 시스템 에 맞지 않 고 도입 해 야 할 중간 어댑터 클래스 나 대상 의 경우 입 니 다.
장면:마치 우리 가 핸드폰 을 산 것 과 같다.사 온 후에 충전 선 플러그 는 세 개의 플러그 인 데 집에 두 개의 플러그 만 있 는 콘센트 인 데 어 떡 하지?편리 함 을 위해 서 는 어디서 든 전 기 를 충전 할 수 있 도록 유 니 버 설 충전 어댑터 를 사 야 한다.이렇게 해야만 휴대 전 화 를 자신의 집에 충전 할 수 있다.그렇지 않 으 면 놓 아두 거나 이 플러그 가 있 는 곳 으로 가서 충전 할 수 밖 에 없다.
실제 개발 환경 에서 낡은 시스템 이나 제3자 응용 이 제공 하 는 인 터 페 이 스 는 우리 가 정의 한 인터페이스 와 일치 하지 않 기 때문에 인터페이스 프로 그래 밍 을 위 한 환경 에서 이런 낡은,또는 제3자 인 터 페 이 스 를 사용 할 수 없다.이때 우 리 는 적합 한 인 터 페 이 스 를 사용 하여 적합 한 인 터 페 이 스 를 계승 할 수 있다.또한 어댑터 가 인 터 페 이 스 를 실현 하 는 방식 으로 낡은 시스템 이나 제3자 응용 인 터 페 이 스 를 도입 하도록 한다.
이렇게 인터페이스 프로 그래 밍 을 사용 할 때 이 적합 한 클래스 를 사용 하여 낡은 시스템 이나 제3자 가 응용 하 는 인 터 페 이 스 를 간접 적 으로 호출 할 수 있다.
Javascript 에서 대상 언어 를 동적 으로 대상 으로 하 는 어댑터 모드 와 유사 한 코드 를 실현 하려 면 prototype 의 계승 인 스 턴 스 를 사용 하여 실현 할 수 있 습 니 다.인터페이스 제약 을 바탕 으로 하지만 자바 script 은 인터페이스 라 는 것 이 없 기 때문에 우 리 는 인터페이스 라 는 층 을 없 애고 인터페이스 실현 류 Target 을 직접 실현 하여 유사 한 소스 코드 를 모 의 합 니 다.
원본 인 스 턴 스
1.적합 한 클래스 와 인터페이스 방법:
function Adaptee() {
this.name = 'Adaptee';
}
Adaptee.prototype.getName = function() {
return this.name;
}
2.일반 실현 클래스[자바 script 에 인터페이스 가 없 기 때문에 실현 클래스 를 직접 제공 합 니 다]
function Target() {
this.name = 'Target';
}
Target.prototype.queryName= function() {
return this.name;
}
3.어 울 리 는 종류:
function Adapte() {
this.name = '';
}
Adapte.prototype = new Adaptee();
Adapte.prototype.queryName = function() {
this.getName();
}
4 사용 방법:
var local = new Target();
local.queryName(); //
var adapte = new Adapte();
adapte.queryName(); // ;
기타 설명
위의 네 번 째 단 계 는 var local 및 var adapte 와 자바,C\#와 같은 대상 언어 에서 인터페이스 참조 지정 입 니 다.예 를 들 어:
interface Target {
public String queryName();
}
//
Target local = new RealTarget(); // Javascript Target
local.queryName();
//
Target adapte = new Adapte();
adapte.queryName();
이 를 통 해 알 수 있 듯 이 어댑터 류 는 인터페이스 와 목표 류 인 터 페 이 스 를 연결 하 는 중간 층 이다.바로 해결 하 는 데 필요 한 목표 가 이미 존재 하지만 우 리 는 직접 사용 할 수 없고 우리 의 코드 정의 와 협동 하여 사용 할 수 없 으 면 어댑터 모델 을 사용 해 야 한다.어댑터 모델 도 전환 모델,포장 모델 이 라 고 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.