Mod pengawal hadapan
Corak Pengawal Depan digunakan untuk menyediakan mekanisme pemprosesan permintaan berpusat, dan semua permintaan akan diproses oleh pengendali tunggal. Pengendali boleh melakukan pengesahan/kebenaran/pengelogan, atau menjejaki permintaan, dan kemudian menghantar permintaan kepada pengendali yang sesuai. Berikut ialah entiti bagi corak reka bentuk ini.
Pengawal Depan - Pengendali tunggal yang mengendalikan semua jenis permintaan untuk aplikasi, yang boleh menjadi aplikasi berasaskan web atau aplikasi berasaskan Desktop.
Penghantar - Pengawal bahagian hadapan boleh menggunakan objek penghantar untuk menghantar permintaan kepada pengendali khusus yang sepadan.
Paparan - Pandangan ialah objek yang dicipta untuk permintaan.
Pelaksanaan
Kami akan mencipta FrontController dan Dispatcher masing-masing sebagai pengawal bahagian hadapan dan penghantar. HomeView dan StudentView mewakili pelbagai pandangan yang dibuat untuk permintaan yang diterima oleh pengawal hadapan.
FrontControllerPatternDemo, kelas demo kami menggunakan FrontController untuk menunjukkan corak reka bentuk pengawal hadapan.

Langkah 1
Buat paparan.
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"); } }
Langkah 2
Buat penghantar .
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(); } } }
Langkah 3
Buat pengawal bahagian hadapan FrontController.
Context.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){ //记录每一个请求 trackRequest(request); //对用户进行身份验证 if(isAuthenticUser()){ dispatcher.dispatch(request); } } }
Langkah 4
Gunakan FrontController untuk menunjukkan corak reka bentuk pengawal hadapan.
FrontControllerPatternDemo.java
public class FrontControllerPatternDemo { public static void main(String[] args) { FrontController frontController = new FrontController(); frontController.dispatchRequest("HOME"); frontController.dispatchRequest("STUDENT"); } }
Langkah 5
Sahkan output.
Page requested: HOME User is authenticated successfully. Displaying Home Page Page requested: STUDENT User is authenticated successfully. Displaying Student Page