디자인 패턴-전면 컨트롤러 패턴
전면 컨트롤러 디자인 패턴은 모든 요청이 단일 핸들러로 처리되도록 중앙 집중식 요청 처리 메커니즘을 제공하는 데 사용됩니다. 이 핸들러는 요청의 인증 / 권한 / 로깅 또는 추적을 수행 한 다음 요청을 해당 핸들러에 전달할 수 있습니다. 다음은 이러한 유형의 디자인 패턴의 엔티티입니다.
Front Controller -애플리케이션에 들어오는 모든 종류의 요청에 대한 단일 처리기 (웹 기반 / 데스크톱 기반).
Dispatcher -Front Controller는 해당 특정 핸들러에 요청을 전달할 수있는 dispatcher 객체를 사용할 수 있습니다.
View -보기는 요청이 이루어진 개체입니다.
이행
FrontController 와 Dispatcher 를 생성하여 Front Controller와 Dispatcher 역할을합니다. HomeView 및 StudentView 는 요청이 프런트 컨트롤러로 올 수있는 다양한보기를 나타냅니다.
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