외관 모드라고도하는 Facade Pattern은 시스템의 복잡성을 숨기고 클라이언트에게 시스템에 액세스 할 수있는 인터페이스를 제공합니다. 이러한 유형의 설계 패턴은 구조적 패턴입니다. 기존 시스템에 인터페이스를 추가하여 시스템의 복잡성을 숨기고 서브 시스템의 인터페이스 세트에 대한 통합 된 고급 액세스 인터페이스를 제공하여 서브 시스템에 쉽게 액세스하거나 사용할 수 있습니다. 이 패턴에는 클라이언트 요청에 대한 단순화 된 메소드 및 기존 시스템 클래스 방법에 대한 위임 된 통화를 제공하는 단일 클래스가 포함됩니다.
요컨대, 사용자가 쉽게 사용할 수 있도록 많은 복잡한 프로세스를 인터페이스로 캡슐화하는 것입니다. 이 디자인 패턴에는 세 가지 역할이 있습니다.
1) 외관 문자 (Facade) : 이것은 외관 모드의 핵심입니다. 클라이언트 역할에 의해 호출되므로 서브 시스템의 기능에 익숙합니다. 내부적으로 고객 역할의 기존 요구에 따라 여러 기능적 조합을 보유합니다.
2) 서브 시스템 역할 (서브 시스템) : 하위 시스템의 함수를 구현합니다. 이를 위해, 외관 역할은 고객 역할만큼 알려지지 않았으며, 외관 역할에 대한 정보와 링크가 없습니다.
3) 클라이언트 역할 : 파사드 역할을 호출하여 얻을 수있는 기능을 완료하십시오.
간단한 구현 예는 다음과 같습니다.
// 통합 입구 정의 공개 클래스 Shapemaker {private shape circle; private shape 사각형; private shape square; public shapemaker () {circle = new circle (); 사각형 = new 사각형 (); square = new Square ();} public void drawcircle () {circle.draw ();} public void drawrectangle () {public void draw. {square.draw ();}} // 이전에 정의 된 모양 클래스를 직접 사용하여 다양한 모양을 그립니다. 획득 및 그리기 방법에 대해서는 공개 클래스 FacadePatternDemo {public static void main (String [] args) {Shapemaker shapemaker = new Shapemaker (); shapemaker.drawcircle (); shapemaker.drawrectangle (); shapemaker.rawsquare ()에주의를 기울일 필요가 없습니다.그림 1 : UML 다이어그램
Class DrawerOne {public void Open () {System.out.println ( "첫 번째 서랍이 열렸다"); getKey ();} public void getKey () {system.out.println ( "두 번째 서랍의 키 얻기"); "); getFile ();} public void getFile () {System.out.println ("이 중요한 파일을 얻는다 ");}} class drawerfacade {drawerone darwerone = new drawerone (); drawertwo darwertwo = new drawertwo (); public void open (); {darwerone.open (); darwertwo.open ();}} public class void main (string [] args) {drawerfacade drawer = new DrawerFacade (); Drawer ();}}정면 모드 사용 시나리오 :
(1) 복잡한 모듈 또는 서브 시스템에 대한 외부 액세스를 제공하는 모듈.
(2) 서브 시스템은 비교적 독립적이다.
(3) 계층 구조에서, 시스템 내 각 층의 입구는 외관 패턴을 사용하여 정의 될 수있다.
위는 편집기가 소개 한 Java Design 모델 (외관 모드)에 대한 자세한 설명입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!