Mẫu thiết kế - Mẫu bộ điều khiển phía trước
Mẫu thiết kế bộ điều khiển phía trước được sử dụng để cung cấp cơ chế xử lý yêu cầu tập trung để tất cả các yêu cầu sẽ được xử lý bởi một trình xử lý duy nhất. Trình xử lý này có thể thực hiện xác thực / ủy quyền / ghi nhật ký hoặc theo dõi yêu cầu và sau đó chuyển các yêu cầu đến trình xử lý tương ứng. Sau đây là các thực thể của kiểu thiết kế này.
Front Controller - Trình xử lý duy nhất cho tất cả các loại yêu cầu đến ứng dụng (dựa trên web / dựa trên máy tính để bàn).
Dispatcher - Front Controller có thể sử dụng đối tượng điều phối có thể gửi yêu cầu đến trình xử lý cụ thể tương ứng.
View - Các khung nhìn là đối tượng mà các yêu cầu được thực hiện.
Thực hiện
Chúng ta sẽ tạo FrontController và Dispatcher để hoạt động như Front Controller và Dispatcher tương ứng. HomeView và StudentView đại diện cho các chế độ xem khác nhau mà các yêu cầu có thể đến với bộ điều khiển phía trước.
FrontControllerPatternDemo , lớp demo của chúng tôi, sẽ sử dụng FrontController để trình diễn Mẫu thiết kế bộ điều khiển phía trước.
Bước 1
Tạo Chế độ xem.
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");
}
}
Bước 2
Tạo Điều phối viên.
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();
}
}
}
Bước 3
Tạo 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);
}
}
}
Bước 4
Sử dụng FrontController để thể hiện Mẫu thiết kế bộ điều khiển phía trước.
FrontControllerPatternDemo.java
public class FrontControllerPatternDemo {
public static void main(String[] args) {
FrontController frontController = new FrontController();
frontController.dispatchRequest("HOME");
frontController.dispatchRequest("STUDENT");
}
}
Bước 5
Xác minh kết quả đầu ra.
Page requested: HOME
User is authenticated successfully.
Displaying Home Page
Page requested: STUDENT
User is authenticated successfully.
Displaying Student Page