Latest web development tutorials

외관 패턴

외관 패턴 (facade 패턴)은 클라이언트 시스템의 복잡도가 클라이언트 시스템 인터페이스에 액세스 할 수 제공 숨긴다. 디자인 패턴이 타입은 시스템의 복잡성을 숨기는, 기존 시스템에 대한 인터페이스를 추가 한 구조 모델에 속한다.

이 모델은 클라이언트 요청 및 기존 시스템 클래스 메서드에 대리자 호출에 대한 단순화 된 접근 방식을 제공하는 단일 클래스를 포함한다.

소개

의도 : 서브 시스템 일관된 인터페이스 인터페이스 집합을 제공 스키마 사용하는 서브 시스템이 쉽게 고레벨 인터페이스의 모양을 정의한다.

메인 액 : 복잡한 시스템에서, 클라이언트 인터페이스를 단순화 할 때 내부 서브 시스템 액세스의 복잡성을 감소시킨다.

때 사용하는 방법 : 1, 클라이언트가 복잡한 링크 내부 시스템을 알 필요가 없다, 전체 시스템은 단지 "접수"를 제공 할 필요가있을 수 있습니다.2 유입 시스템을 정의한다.

클라이언트는 시스템, 클래스의 외관과 함께 시스템과결합되지 않습니다 어떻게 해결하는.

키 코드 : 클라이언트 시스템 복잡성의 층을 추가 사이 이번에 호출 시퀀스 의존성 및 기타 취급 될 것이다.

적용 예 : 1, 방금 리셉션 직원이 매우 편리하고 처리 할 수 있도록, 등록, 외래 환자, 지정 가격, 약국, 환자의 환자 또는 가족 구성원이 리셉션 직원이 제공하는 경우, 그것은 매우 복잡 찾기로 이동 할 수 있습니다, 병원으로 이동합니다.2, JAVA 3 계층 개발 모델.

장점 : (1) 시스템을 줄이기는 상호 의존적이다.2, 유연성을 증가시킨다. 3, 보안을 향상시킬 수 있습니다.

단점 : 당신이 일을 너무 많은 문제를 변경하려는 경우, 개폐의 원칙을 준수하지 않는, 상속 다시 쓰기가 부적절합니다.

사용 시나리오 : 외부 모듈은 복잡한 모듈 또는 서브 시스템이다에 1, 액세스를 제공합니다.2, 상대적으로 독립적 인 서브 시스템. (3) 낮은 수준의 인력 위험의 예방.

주 : 계층 구조에서 각 층에 대한 입력 모드의 외관을 정의하는 시스템을 사용할 수있다.

실현

우리는 엔티티 클래스모양 인터페이스의모양 인터페이스와 구현을 작성합니다. 다음 단계는 피부ShapeMaker 클래스를정의하는것이다.

ShapeMaker 클래스이클래스는 사용자 호출을 나타내는 엔티티 클래스를 사용한다.FacadePatternDemo는ShapeMaker 클래스를 사용하여 우리의 데모 클래스는 결과를 표시합니다.

외관 패턴 UML 다이어그램

1 단계

인터페이스를 만듭니다.

Shape.java

공용 인터페이스 Shape {
   무효 무승부 ();
}

2 단계

인터페이스를 구현 엔티티 클래스를 만듭니다.

Rectangle.java

공용 클래스 직사각형 모양을 {구현

   @Override
   공공 무효 무승부 () {
      에서 System.out.println ( "사각형 :: 무승부 ()");
   }
}

Square.java

공용 클래스 광장 모양을 {구현

   @Override
   공공 무효 무승부 () {
      에서 System.out.println ( "광장 :: 무승부 ()");
   }
}

Circle.java

공용 클래스 서클 모양을 {구현

   @Override
   공공 무효 무승부 () {
      에서 System.out.println ( "원 : 무승부 ()");
   }
}

3 단계

클래스 모양을 만듭니다.

ShapeMaker.java

공용 클래스 ShapeMaker {
   개인 모양 원;
   개인 모양의 사각형;
   개인 모양 광장;

   공공 ShapeMaker () {
      원 = 새로운 서클 ();
      사각형 = 새로운 Rectangle ();
      광장 = 새로운 광장 ();
   }

   공공 무효 drawCircle () {
      circle.draw ();
   }
   공공 무효 drawRectangle () {
      rectangle.draw ();
   }
   공공 무효 drawSquare () {
      square.draw ();
   }
}

4 단계

피부 클래스의 다양한 형태의 사용은 도형을 그리.

FacadePatternDemo.java

공용 클래스 FacadePatternDemo {
   공공 정적 무효 메인 (문자열 []에 args) {
      ShapeMaker shapeMaker = 새로운 ShapeMaker ();

      shapeMaker.drawCircle ();
      shapeMaker.drawRectangle ();
      shapeMaker.drawSquare ();		
   }
}

5 단계

출력을 확인합니다.

원 :: 무승부 ()
사각형 :: 무승부 ()
광장 :: 무승부 ()