Latest web development tutorials

전면 컨트롤러 패턴

프론트 컨트롤러 패턴 (프론트 컨트롤러 패턴) 요청을 처리하기위한 중앙 메커니즘을 제공하는 데 사용되는 모든 요청은 단일 처리기에 의해 처리된다. 핸들러는 인증 / 권한 부여 / 로깅 또는 추적 요청, 적절한 핸들러에 다음 요청을 할 수 있습니다. 다음은이 설계 패턴의 실체이다.

  • 전면 컨트롤러 (전면 컨트롤러) - 모든 유형의 요청을 응용 프로그램을 처리하는 단일 핸들러는 응용 프로그램이 데스크탑 기반 응용 프로그램이 될 수있는 웹 기반 응용 프로그램 될 수있다.
  • 스케줄러 (디스패처) - 전단 제어기는 해당 특정 핸들러에 요청을 전달하는 디스패처 오브젝트를 사용할 수있다.
  • 보기 (보기) -보기는 요청과 생성의 목적이다.

실현

우리는 프런트 엔드 컨트롤러와 스케줄러로,각각을 FrontController,Dispatcher를 생성합니다. 프론트 엔드 컨트롤러의 다양한 도시HomeViewStudentView뷰 생성하는 요청을 수신한다.

FrontControllerPatternDemo,우리의 데모 클래스는사용을 FrontController전면 컨트롤러 디자인 패턴을 설명합니다.

전면 컨트롤러 패턴 UML 다이어그램

1 단계

보기를 만듭니다.

HomeView.java

공용 클래스 HomeView {
   공공 무효 쇼 () {
      에서 System.out.println ( "표시 홈 페이지");
   }
}

StudentView.java

공용 클래스 StudentView {
   공공 무효 쇼 () {
      에서 System.out.println ( "표시 학생 페이지");
   }
}

2 단계

발송자 Dispatcher를 만듭니다.

Dispatcher.java

공용 클래스 디스패처 {
   개인 StudentView studentView;
   개인 HomeView homeView;
   공공 디스패처 () {
      studentView = 새로운 StudentView ();
      homeView = 새로운 HomeView ();
   }

   공공 무효 파견 (문자열 요청) {
      (request.equalsIgnoreCase ( 'STUDENT')) {만약
         studentView.show ();
      } 그밖에 {
         homeView.show ();
      }	
   }
}

3 단계

전면 컨트롤러을 FrontController 만들기.

Context.java

공용 클래스을 FrontController {
	
   개인 디스패처 디스패처;

   대중을 FrontController () {
      디스패처 = 새 디스패처 ();
   }

   개인 부울 isAuthenticUser () {
      에서 System.out.println는 ( "사용자가 성공적으로 인증됩니다.");
      true를 반환;
   }

   개인 무효의 trackRequest (문자열 요청) {
      에서 System.out.println ( "페이지를 요청 :"+ 요청);
   }

   공공 무효 dispatchRequest (문자열 요청) {
      // 레코드 모든 요청 trackRequest (요청);
      // 경우 (isAuthenticUser ()) {사용자를 인증
         dispatcher.dispatch (요청);
      }	
   }
}

4 단계

을 FrontController는전면 컨트롤러 디자인 패턴의 사용을 설명합니다.

FrontControllerPatternDemo.java

공용 클래스 FrontControllerPatternDemo {
   공공 정적 무효 메인 (문자열 []에 args) {
      을 FrontController을 FrontController = 새을 FrontController ();
      frontController.dispatchRequest ( "HOME");
      frontController.dispatchRequest ( 'STUDENT');
   }
}

5 단계

출력을 확인합니다.

페이지 요청 : HOME
사용자가 성공적으로 인증됩니다.
홈 페이지를 표시
페이지 요청 : 학생
사용자가 성공적으로 인증됩니다.
학생 페이지 표시