> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 디자인 패턴의 어댑터 패턴 소개_javascript 기술

JavaScript 디자인 패턴의 어댑터 패턴 소개_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:24:00
원래의
1281명이 탐색했습니다.

어댑터 모드 설명

설명: 어댑터 모드는 일반적으로 사용할 인터페이스가 이 애플리케이션이나 시스템에 적합하지 않고 중간 적응 계층 클래스나 개체를 도입해야 할 때 사용됩니다.

시나리오: 휴대폰을 구입한 후 충전 코드에 3구 플러그가 있는데 집에 2구 소켓만 있는 것을 발견했습니다. 어떻게 해야 할까요? 편리함과 어디서든 충전할 수 있으려면 집에서 휴대폰을 충전할 수 있도록 범용 충전 어댑터를 구입해야 합니다. 그렇지 않으면 혼자 두거나 플러그가 있는 곳에 가서 충전해야 합니다. 🎜>

실제 개발 환경에서는 기존 시스템이나 타사 애플리케이션에서 제공하는 인터페이스가 우리가 정의한 인터페이스와 일치하지 않기 때문에 이러한 기존 인터페이스나 타사 인터페이스를 인터페이스 지향 프로그래밍 환경에서 사용할 수 없습니다. 적응 클래스를 사용하여 적응할 클래스를 상속하고, 적응 클래스가 인터페이스를 구현하여 기존 시스템 또는 타사 애플리케이션의 인터페이스를 도입하도록 합니다.

이런 방식으로 인터페이스 프로그래밍을 사용하는 경우 이 적응 클래스를 사용하여 기존 시스템이나 타사 애플리케이션의 인터페이스를 간접적으로 호출할 수 있습니다.

Javascript에서는 동적 객체 지향 언어의 어댑터 패턴과 유사한 코드를 구현하려는 경우 상속된 프로토타입 인스턴스를 사용하여 구현할 수 있습니다. 왜냐하면 인터페이스 제약 조건을 기반으로 하기 때문입니다. 인터페이스와 같은 것에서는 인터페이스 계층을 제거하고 인터페이스 구현 클래스 Target을 직접 구현하고 유사한 소스 코드를 시뮬레이션합니다.

소스코드 예시

1. 적용할 클래스 및 인터페이스 방법:


함수 Adaptee() {
This.name = '적응자';
}
Adaptee.prototype.getName = function() {
이 이름을 반환하세요.
}


2. 일반 구현 클래스 [Javascript에는 인터페이스가 없으므로 구현 클래스를 직접 제공]

함수 타겟() {
This.name = '대상';
}

Target.prototype.queryName= function() { 이 이름을 반환하세요.

}


3. 적응 수업:


함수 Adapte() {
This.name = '';
}

Adapte.prototype = 새로운 Adaptee();

Adapte.prototype.queryName = function() {

This.getName();

}


4. 사용방법:


var local = new Target();
local.queryName(); //일반 구현 클래스 호출

varadapte = new Adapte(); adap.queryName(); //기존 시스템 또는 타사 애플리케이션 인터페이스를 호출합니다.



기타 안내

위 네 번째 단계에서 var local과 varada는 다음과 같이 Java, C# 등 객체지향 언어의 인터페이스 참조 지정과 유사합니다.


인터페이스 대상 {
공개 문자열 queryName();
}
//인터페이스 참조는
을 가리킵니다. Target local = new RealTarget(); //위 자바스크립트의 Target 구현 클래스입니다
local.queryName();

//어댑터 대상 적응 = new Adapte();

적응.쿼리이름();


어댑터 클래스는 인터페이스와 대상 클래스 인터페이스를 연결하는 중간 계층임을 알 수 있습니다. 이는 필요한 대상이 이미 존재하지만 직접 또는 결합하여 사용할 수 없는 문제를 해결하는 데 사용됩니다. 코드 정의이므로 어댑터 모드를 사용해야 합니다. 어댑터 모드는 변환 모드 및 패키징 모드라고도 합니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿