MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用於應用程序的分層開發。
- Model(模型) - 模型代表一個存取數據的對象或 JAVA POJO。它也可以帶有邏輯,在數據變化時更新控制器。
- View(視圖) - 視圖代表模型包含的數據的可視化。
- Controller(控制器) - 控制器作用於模型和視圖上。它控制數據流向模型對象,並在數據變化時更新視圖。它使視圖與模型分離開。
業務代表模式(Business Delegate Pattern)用於對表示層和業務層解耦。它基本上是用來減少通信或對表示層代碼中的業務層代碼的遠程查詢功能。在業務層中我們有以下實體。
- 客戶端(Client) - 表示層代碼可以是 JSP、servlet 或 UI java 代碼。
- 業務代表(Business Delegate) - 一個為客戶端實體提供的入口類,它提供了對業務服務方法的訪問。
- 查詢服務(LookUp Service) - 查找服務對象負責獲取相關的業務實現,並提供業務對象對業務代表對象的訪問。
- 業務服務(Business Service) - 業務服務接口。實現了該業務服務的實體類,提供了實際的業務實現邏輯。
組合實體模式(Composite Entity Pattern)用在 EJB 持久化機制中。一個組合實體是一個 EJB 實體 bean,代表了對象的圖解。當更新一個組合實體時,內部依賴對象 beans 會自動更新,因為它們是由 EJB 實體 bean 管理的。以下是組合實體 bean 的參與者。
- 組合實體(Composite Entity) - 它是主要的實體 bean。它可以是粗粒的,或者可以包含一個粗粒度對象,用於持續生命周期。
- 粗粒度對象(Coarse-Grained Object) - 該對象包含依賴對象。它有自己的生命周期,也能管理依賴對象的生命周期。
- 依賴對象(Dependent Object) - 依賴對象是一個持續生命周期依賴於粗粒度對象的對象。
- 策略(Strategies) - 策略表示如何實現組合實體。
數據訪問對象模式(Data Access Object Pattern)或 DAO 模式用於把低級的數據訪問 API 或操作從高級的業務服務中分離出來。以下是數據訪問對象模式的參與者。
- 數據訪問對象接口(Data Access Object Interface) - 該接口定義了在一個模型對象上要執行的標准操作。
- 數據訪問對象實體類(Data Access Object concrete class) - 該類實現了上述的接口。該類負責從數據源獲取數據,數據源可以是數據庫,也可以是 xml,或者是其他的存儲機制。
- 模型對象/數值對象(Model Object/Value Object) - 該對象是簡單的 POJO,包含了 get/set 方法來存儲通過使用 DAO 類檢索到的數據。
前端控制器模式(Front Controller Pattern)是用來提供一個集中的請求處理機制,所有的請求都將由一個單一的處理程序處理。該處理程序可以做認證/授權/記錄日志,或者跟蹤請求,然后把請求傳給相應的處理程序。以下是這種設計模式的實體。
- 前端控制器(Front Controller) - 處理應用程序所有類型請求的單個處理程序,應用程序可以是基於 web 的應用程序,也可以是基於桌面的應用程序。
- 調度器(Dispatcher) - 前端控制器可能使用一個調度器對象來調度請求到相應的具體處理程序。
- 視圖(View) - 視圖是為請求而創建的對象。
攔截過濾器模式(Intercepting Filter Pattern)用於對應用程序的請求或響應做一些預處理/后處理。定義過濾器,並在把請求傳給實際目標應用程序之前應用在請求上。過濾器可以做認證/授權/記錄日志,或者跟蹤請求,然后把請求傳給相應的處理程序。以下是這種設計模式的實體。
- 過濾器(Filter) - 過濾器在請求處理程序執行請求之前或之后,執行某些任務。
- 過濾器鏈(Filter Chain) - 過濾器鏈帶有多個過濾器,並在 Target 上按照定義的順序執行這些過濾器。
- Target - Target 對象是請求處理程序。
- 過濾管理器(Filter Manager) - 過濾管理器管理過濾器和過濾器鏈。
- 客戶端(Client) - Client 是向 Target 對象發送請求的對象。
服務定位器模式(Service Locator Pattern)用在我們想使用 JNDI 查詢定位各種服務的時候。考慮到為某個服務查找 JNDI 的代價很高,服務定位器模式充分利用了緩存技術。在首次請求某個服務時,服務定位器在 JNDI 中查找服務,並緩存該服務對象。當再次請求相同的服務時,服務定位器會在它的緩存中查找,這樣可以在很大程度上提高應用程序的性能。以下是這種設計模式的實體。
- 服務(Service) - 實際處理請求的服務。對這種服務的引用可以在 JNDI 服務器中查找到。
- Context / 初始的 Context - JNDI Context 帶有對要查找的服務的引用。
- 服務定位器(Service Locator) - 服務定位器是通過 JNDI 查找和緩存服務來獲取服務的單點接觸。
- 緩存(Cache) - 緩存存儲服務的引用,以便復用它們。
- 客戶端(Client) - Client 是通過 ServiceLocator 調用服務的對象。
傳輸對象模式(Transfer Object Pattern)用於從客戶端向服務器一次性傳遞帶有多個屬性的數據。傳輸對象也被稱為數值對象。傳輸對象是一個具有 getter/setter 方法的簡單的 POJO 類,它是可序列化的,所以它可以通過網絡傳輸。它沒有任何的行為。服務器端的業務類通常從數據庫讀取數據,然后填充 POJO,並把它發送到客戶端或按值傳遞它。對於客戶端,傳輸對象是只讀的。客戶端可以創建自己的傳輸對象,並把它傳遞給服務器,以便一次性更新數據庫中的數值。以下是這種設計模式的實體。
- 業務對象(Business Object) - 為傳輸對象填充數據的業務服務。
- 傳輸對象(Transfer Object) - 簡單的 POJO,只有設置/獲取屬性的方法。
- 客戶端(Client) - 客戶端可以發送請求或者發送傳輸對象到業務對象。