소개하다
Facade는 서브 시스템의 인터페이스 세트에 대한 일관된 인터페이스를 제공합니다. 이 모듈은이 하위 시스템에서 더 쉽게 사용하기 쉬운 고급 인터페이스를 정의합니다.
텍스트
모양 모드는 클래스의 인터페이스를 단순화 할뿐만 아니라 발신자의 인터페이스를 분리합니다. 외관 패턴은 종종 개발자에게 필수로 간주되며 일부 복잡한 작업을 캡슐화하고 호출을위한 간단한 인터페이스를 만들 수 있습니다.
외관 모드는 종종 JavaScript 클래스 라이브러리에서 사용됩니다. 이를 통해 여러 브라우저와의 호환성을 위해 일부 인터페이스를 캡슐화합니다. 외관 모드를 사용하면 하위 시스템에 대한 직접 액세스로 인한 불필요한 오류를 피할 수 있습니다.
외관 모드의 장점은 사용하기 쉽고 그 자체로도 가볍다는 것입니다. 그러나 단점도 있습니다. 외관 모드를 개발자가 지속적으로 사용하면 기능의 가용성이 호출 될 때마다 감지해야하므로 특정 성능 문제가 발생합니다.
아래는 최적화되지 않은 코드입니다. 외관 모드를 사용하여 브라우저 특성을 감지하여 크로스 브라우저 사용 방법을 만듭니다.
코드 사본은 다음과 같습니다.
var addmyevent = function (el, ev, fn) {
if (el.addeventListener) {
el.addeventListener (EV, FN, False);
} else if (el.attachevent) {
el.attachevent ( 'on' + ev, fn);
} 또 다른 {
el [ 'on' + ev] = fn;
}
};
또 다른 간단한 예를 들어 보겠습니다. 무뚝뚝하게 말하면 하나의 인터페이스를 사용하여 다른 인터페이스를 캡슐화하십시오.
코드 사본은 다음과 같습니다.
var mobileEvent = {
// ...
정지 : 함수 (e) {
e.preventDefault ();
E.StopPropagation ();
}
// ...
};
요약
그렇다면 언제 외관 모드를 사용해야합니까? 일반적으로 세 단계가 있습니다.
먼저, 디자인의 초기 단계에서는 데이터 액세스 계층과 비즈니스 로직 계층, 비즈니스 로직 레이어 및 프리젠 테이션 계층 사이의 외관 정면을 설정하기 위해 클래식 3 층 구조와 같은 두 개의 다른 레이어를 의식적으로 분리해야합니다.
둘째, 개발 단계에서, 지속적인 재구성과 진화로 인해 하위 시스템이 종종 점점 더 복잡해집니다. 외관을 외관에 추가하면 간단한 인터페이스를 제공하고 종속성을 줄일 수 있습니다.
셋째, 대규모 레거시 시스템을 유지할 때이 시스템을 유지하기가 어려울 수 있습니다. 현재 외관 외관을 사용하는 것이 매우 적합합니다. 시스템 시스템에 대한 외관 외관 클래스를 개발하여 거칠고 매우 복잡한 레거시 코드를 설계하기위한 명확한 인터페이스를 제공하여 새로운 시스템이 외관 객체와 상호 작용하고 Facade가 레거시 코드와 상호 작용할 수 있도록합니다.
참조 : 큰 대화 디자인 모드