四層體係結構介紹
分層設計的軟件係統,由於把相似功能的類或組件放在同一層裏。所以好的分層係統應該具備:層的內部“高內聚”,層與層之間是“鬆耦合”的。隻有符合這樣的一個設計原則的軟件係統,才能具有可複用性和可擴展性。因此,降低層間“耦合度”就成軟件設計的目標,能夠設計出“鬆耦合”的係統,就意味著我們的係統具備可複用性和可擴展性,這樣的係統就能夠滿足的用戶不斷變化的需求。從設計角度我們可以將一個應用係統(一般是信息係統)分成四層結構如圖所示。接下來我們將一一介紹各層之間的含義。
表示層是用戶與係統交互的組件集合,用戶通過這一層向係統提交請求或發出指令,係統通過這一層接收用戶請求或指令,然後,根據請求指令調用服務層,再根據調用的結果,將相應的內容展現到表示層。表示層應該是輕薄的,不應該具有業務邏輯。如果我們的係統是一個Web係統的話,我們采用的技術有HTML、JSP和Servlet等,也可以使用MVC框架,例如Struts等框架技術。這時我們將表示層稱為Web層更準確一點。無論采用什麼技術表示層都應該是輕薄的,不應該具有業務邏輯。也就是說無論我們使用JSP、Servlet作為表示層還是使用Swing作為表示層都應該是輕薄的。
服務層是係統的核心業務處理層,負責接收表示層的指令和數據,根據業務邏輯的需要調用相應的持久層,並將結果返回給表示層。為了降低表示層和服務層的耦合問題,我們會在兩層之間引入接口,然後在運行期注入依賴關係。服務層一般使用的技術有會話EJB、消息EJB和JavaBean。
數據持久層用於訪問數據庫,數據持久層中一般是通過DAO(數據訪問對象設計模式)訪問數據庫的,也是為了降低耦合度,DAO被設計為接口,DAO實現可以是JDBC,也可以使用一些ORM框架如Hibernate等。除了使用DAO以外,我們也可以使用EJB中的實體EJB實現數據持久化。
EIS層
EIS層即企業信息係統層,是係統的數據來源層。它們可以是數據庫、文件和其它的係統,多數情況下是指的是數據庫。
最後更新:2017-04-02 00:06:27