디자인 패턴-전면 컨트롤러 패턴

전면 컨트롤러 디자인 패턴은 모든 요청이 단일 핸들러로 처리되도록 중앙 집중식 요청 처리 메커니즘을 제공하는 데 사용됩니다. 이 핸들러는 요청의 인증 / 권한 / 로깅 또는 추적을 수행 한 다음 요청을 해당 핸들러에 전달할 수 있습니다. 다음은 이러한 유형의 디자인 패턴의 엔티티입니다.

  • Front Controller -애플리케이션에 들어오는 모든 종류의 요청에 대한 단일 처리기 (웹 기반 / 데스크톱 기반).

  • Dispatcher -Front Controller는 해당 특정 핸들러에 요청을 전달할 수있는 dispatcher 객체를 사용할 수 있습니다.

  • View -보기는 요청이 이루어진 개체입니다.

이행

FrontControllerDispatcher 를 생성하여 Front Controller와 Dispatcher 역할을합니다. HomeViewStudentView 는 요청이 프런트 컨트롤러로 올 수있는 다양한보기를 나타냅니다.

FrontControllerPatternDemo , 데모 클래스는 사용 을 FrontController을 전면 컨트롤러 디자인 패턴을 보여줍니다.

1 단계

보기를 만듭니다.

HomeView.java

public class HomeView {
   public void show(){
      System.out.println("Displaying Home Page");
   }
}

StudentView.java

public class StudentView {
   public void show(){
      System.out.println("Displaying Student Page");
   }
}

2 단계

디스패처를 만듭니다.

Dispatcher.java

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();
      }	
   }
}

3 단계

FrontController 만들기

FrontController.java

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){
      //log each request
      trackRequest(request);
      
      //authenticate the user
      if(isAuthenticUser()){
         dispatcher.dispatch(request);
      }	
   }
}

4 단계

FrontController 를 사용하여 전면 컨트롤러 디자인 패턴을 보여줍니다.

FrontControllerPatternDemo.java

public class FrontControllerPatternDemo {
   public static void main(String[] args) {
   
      FrontController frontController = new FrontController();
      frontController.dispatchRequest("HOME");
      frontController.dispatchRequest("STUDENT");
   }
}

5 단계

출력을 확인하십시오.

Page requested: HOME
User is authenticated successfully.
Displaying Home Page
Page requested: STUDENT
User is authenticated successfully.
Displaying Student Page