Java設計模式(3):前端控制器模式

前端控制器模式(Front Controller Pattern)提供一種可以集中管理請求的控制器,即所謂的前端控制器,該前端控制器用于響應客戶請求,為每個請求尋找匹配的處理器。在這種模式中,控制器提供一個處理不同請求的控制點,這些控制點包括日志記錄,安全事務,錯誤處理和響應內容的生成(如視圖),通過將這些工作集中在一點進行處理,大大地減低了Java代碼量,同時這種機制也可以減少視圖模塊的程序邏輯,保證了在不同請求之間可以重用大量的邏輯代碼。

前端控制器模式主要有三類組件構成:

前端控制器(Front Controller)

處理應用程序所有類型請求的單個處理程序,應用程序可以是基于web 的應用程序,也可以是基于桌面的應用程序。

處理器(Handler)

前端控制器可能使用一個處理器對象來處理請求到相應的具體處理程序。

視圖(View)

視圖是為請求而創建的對象。

下面的示例我們將創建FrontController,Handler 分別當作前端控制器和處理器。HomeView 和 LoginView 表示各種為前端控制器接收到的請求而創建的視圖。FrontControllerPatternDemo是演示類使用 FrontController 來演示前端控制器設計模式。

示例:

public abstract class View {

public abstract void show();

}

public class HomeView extends View {

@Override

public void show() {

System.out.println("顯示主頁視圖");

}

}

public class LogInView extends View {

@Override

public void show() {

System.out.println("顯示登陸視圖");

}

}

public class Dispatcher {

private HomeView homeView;

private LogInView logInView;

public Dispatcher(){

homeView=new HomeView();

logInView=new LogInView();

}

public void doDispacher(String request) {

if("HOME".equals(request)){

homeView.show();

}else{

logInView.show();

}

}

}

public class FrontController {

private Dispatcher dispatcher;

public FrontController(){

dispatcher=new Dispatcher();

}

public boolean authenticate() {

System.out.println("通過認證");

return true;

}

public void dispatcher(String request){

if( authenticate()){

dispatcher.doDispacher(request);

}

}

}

public class FrontControllerPatternDemo {

public static void main(String[] args) {

FrontController controller=new FrontController();

controller.dispatcher("HOME");

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • “臻臻細語”寫簡信給我,要我為“北漂”的農民工兄弟姐妹們寫首詩。我說我沒有這樣的經歷,恐怕寫不出來。但我實在不愿有...
    曹煥甫閱讀 190評論 2 1
  • 流星劃過一剎那的故事 在那一刻虔誠的許下我的世界 從心里面留下未來的愿景 煙火燦爛一時的美好 在那一刻匆忙的身影駐...
    劃一座城池閱讀 148評論 0 2