以功能開發者角度理解J2EE核心模式(Core J2EE Patterns)

一. 目標

模塊化、鬆耦合、緊內聚、提高可維護性和重用性。這些我們聽得最多了,看起來很空,但模式確實做到了。實現主要用到:封裝、分層、AOP

二. 理解

我粗劣看完《J2EE核心模式》第二版有一些理解。我要用通俗的語言,隨意的文字來描述,即使我成不了專家我也這麼做。隨意寫,不嚴謹,不負責。

爲什麼要使用模式?   答:高端大氣上檔次!具體參照文章頭部

模式怎麼來? 答:模式是總結出來的。 架構師用着用着有了經驗總結出來。

    這麼本書分兩個部分第一部分跳過,我們來說說有哪些核心模式。

三. 模式

   表現層模式

1. 攔截過濾器

這個好理解,在web.xml裏面不是有個<filter>標籤麼,就可以添加過濾器到過濾器鏈上。在過濾器類上又可以做文章了,繼承,封裝,怎麼方便怎麼寫。

常用是作處理編碼方式,亂碼,哈哈。SpringMVC有個這種過濾器。

實現:AOP

 2. 前端控制器

就是加多一層處理分發。側重集中控制,減少視圖業務,提高代碼重用;而攔截過濾器側重預處理後處理。

3. Context 對象

無法理解,ha ha。實現:封裝

 4. 應用控制器

跟前端控制一個樣,加多一層。前端控制器之後就到它,它做的東西是操作控制和視圖控制,就是來點實際的。

SpringMVC的conctroller層,strust2 的Action 。 實現:分層。

5. 視圖助手

舉個例子就明白了。JSTL中的 foreach 遍歷。把視圖和邏輯分開。這樣前端做她的事,後臺做他的事。實現:加類庫。

6. 複合視圖

一個大視圖,裏面有幾個視圖,有些是靜態,有些是動態的。能否想到管理系統的上左右的佈局?頭部靜態的,左右導航,右邊內容。

這個容易理解:10個頁面的頭部,你想加個div,你不抽出來,要改10處,你抽出來,改一處。( 請原諒前端人員不是這樣做 )

實現:例如JSP中的 include

7. 服務到工作者

邏輯在後臺處理好,到頁面的時候只管遍歷。怎麼覺得有跟助手有點類似,囧。哦,對了,因爲工作者不一定是頁面,可能是命令。

8. 分配器視圖

SpringMVC的簡單視圖跳轉,或URL直接訪問JSP文件。沒什麼數據要加,直接分發。這也能成模式,果然大師!


業務層代表

1. 業務代表

對系統功能分大塊。在這個類呢,你知道我說的是那個類,它可以處理URL,轉化成某個功能,但它自己不做,叫別人去做。實現:封裝,分層。

2. 服務定位器

不就是一個利用JNDI實現的找源的方法麼。比如找數據源,JDBC,你給出一個名字,我給你一個服務。怎麼着你不關,而且我可以緩存你找過的。實現:封裝

3.會話門面

本質我覺得跟業務代表一個樣,只是名字和內容不一樣。

4.應用服務

服務層,哈哈,這個能理解。service 層,服務內部實現邏輯,供controller調用,而它又調用dao層。

5. 業務對象

POJO , Model .

6. 複合實體 

難道是 POJO 引用了 POJO 2 ?

7. 傳輸對象

把要發送的字段封裝成一個對象,本來就是這樣做的,面向對象呀。

8. 傳輸對象組裝器

給傳輸對象一個主管

9. 值列表處理器

分頁。先取出來在後臺緩存,客戶端你拿多少,給多少。


集成層模式

1. 數據訪問對象

封裝操作數據庫方法的層。DataAccessObject,俗稱dao層。

2. 服務激活器

異步調用,好像本來可以異步。你想表達什麼???

3. 業務領域儲存

I am sorry . 

4. Web Service 中轉 

利用XML或web協議 分發請求到某個服務,god knows.


The end , thank you.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章