Java 프론트 컨트롤 러 패턴(전단 컨트롤 러 모드)

전단 컨트롤 러 모드(Front Controller Pattern)는 집중 적 인 요청 처리 체 제 를 제공 하 는 데 사 용 됩 니 다.모든 요청 은 하나의 처리 프로그램 으로 처 리 됩 니 다.이 처리 프로그램 은 인증/권한 수여/로 그 를 기록 하거나 추적 요청 을 한 후 해당 처리 프로그램 에 요청 을 전달 할 수 있 습 니 다.다음은 이런 디자인 모델 의 실체 다.
  • 전단 컨트롤 러(Front Controller)-응용 프로그램의 모든 유형의 요청 을 처리 하 는 단일 처리 프로그램 입 니 다.응용 프로그램 은 웹 기반 프로그램 일 수도 있 고 데스크 톱 기반 프로그램 일 수도 있 습 니 다
  • 스케줄 러(Dispatcher)-전단 컨트롤 러 는 스케줄 러 대상 을 사용 하여 구체 적 인 처리 프로그램 에 요청 할 수 있 습 니 다

  • 보기(View)-보 기 는 요청 을 위 한 대상 입 니 다
    보 기 를 만 듭 니 다
    /**
     * 1.     。
     * @author mazaiting
     */
    public class HomeView {
        public void show() {
            System.out.println("Displaying Home Page");
        }
    }
    
    /**
     * 1.     
     * @author mazaiting
     */
    public class StudentView {
        public void show() {
            System.out.println("Displaying Student Page");
        }
    }
    
  • 스케줄 러 Dispatcher 를 만 듭 니 다.
  • /**
     * 2.       Dispatcher。
     * @author mazaiting
     */
    public class Dispatcher {
        private StudentView studentView;
        private HomeView homeView;
        
        public Dispatcher() {
            studentView = new StudentView();
            homeView = new HomeView();
        }
        
        public void dispatch(String request) {
            if (request.equalsIgnoreCase("STUDENT")) {
                studentView.show();
            } else {
                homeView.show();
            }
        }   
    }
    
  • 전단 컨트롤 러 FrontController 를 만 듭 니 다
  • /**
     * 3.         FrontController。
     * @author mazaiting
     */
    public class FrontController {
        private Dispatcher dispatcher;
        
        public FrontController() {
            dispatcher = new Dispatcher();
        }
        
        /**
         *       
         */
        private boolean isAuthenticUser(){
            System.out.println("User is authenticated successfully.");
            return true;
        }
        
        /**
         *     
         */
        private void trackRequest(String request){
            System.out.println("Page requested: " + request);
        }
        
        /**
         *     
         */
        public void dispatchRequest(String request){
            //        
            trackRequest(request);
            //          
            if (isAuthenticUser()) {
                dispatcher.dispatch(request);
            }
        }
        
    }
    

    4.567917.프론트 컨트롤 러 를 사용 하여 전단 컨트롤 러 디자인 모델 을 보 여 줍 니 다
    /**
     * 4.    FrontController             。
     * @author mazaiting
     */
    public class Client {
        public static void main(String[] args) {
            FrontController frontController = new FrontController();
            frontController.dispatchRequest("HOME");
            frontController.dispatchRequest("STUDENT");
        }
    }
    

    인쇄 결과
    Page requested: HOME
    User is authenticated successfully.
    Displaying Home Page
    Page requested: STUDENT
    User is authenticated successfully.
    Displaying Student Page
    

    좋은 웹페이지 즐겨찾기