전면 컨트롤러 패턴
프론트 컨트롤러 패턴 (프론트 컨트롤러 패턴) 요청을 처리하기위한 중앙 메커니즘을 제공하는 데 사용되는 모든 요청은 단일 처리기에 의해 처리된다. 핸들러는 인증 / 권한 부여 / 로깅 또는 추적 요청, 적절한 핸들러에 다음 요청을 할 수 있습니다. 다음은이 설계 패턴의 실체이다.
- 전면 컨트롤러 (전면 컨트롤러) - 모든 유형의 요청을 응용 프로그램을 처리하는 단일 핸들러는 응용 프로그램이 데스크탑 기반 응용 프로그램이 될 수있는 웹 기반 응용 프로그램 될 수있다.
- 스케줄러 (디스패처) - 전단 제어기는 해당 특정 핸들러에 요청을 전달하는 디스패처 오브젝트를 사용할 수있다.
- 보기 (보기) -보기는 요청과 생성의 목적이다.
실현
우리는 프런트 엔드 컨트롤러와 스케줄러로,각각을 FrontController,Dispatcher를 생성합니다. 프론트 엔드 컨트롤러의 다양한 도시HomeView및StudentView뷰 생성하는 요청을 수신한다.
FrontControllerPatternDemo,우리의 데모 클래스는사용을 FrontController전면 컨트롤러 디자인 패턴을 설명합니다.
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 사용자가 성공적으로 인증됩니다. 홈 페이지를 표시 페이지 요청 : 학생 사용자가 성공적으로 인증됩니다. 학생 페이지 표시