1. 程式人生 > >Web項目結構分層

Web項目結構分層

pub 負責 frame present http res hibernate framework 案例

分層的必要性

一個項目必然有其相應的業務邏輯,而一般的業務邏輯不可能特別簡單。如果將這樣的項目寫在一層,那麽這層的邏輯將會變的復雜,不利於後期的維護。如果根據不同的功能進行分層,每層負責相應的邏輯,則提高程序的可讀性,利於後期維護。

分層介紹

這裏將項目分為5層,如果項目不是特別復雜,可以適當減少層數。5層分別為:業務邏輯層、數據訪問稱、服務稱、表現層和用戶層。

案例

這裏利用一個小案例大概展示下各層的協作,關於各層的詳細作用將在以後講解。案例如下:
超市分別向一般顧客和零售商出售商品。現在搞打折活動,一般顧客和零售商采用不同的打折策咯。

業務邏輯層(Business Logic)

主要包括業務所涉及的實體(Model)和實體(Model)間的業務邏輯,根據具體情況采用相應的設計模式(Design Pattern)使代碼滿足設計原則。
聲明數據訪問的接口IProductRepository

,本層不關心數據數據查詢和存儲的邏輯。

數據訪問稱

這裏采用倉儲模式Repository,一般采用ORM框架。常用的ORM框架有Entity Framework和NHibernate。

服務層

一般需要發布服務的項目需要服務層,根據外觀模式Facde隱藏業務業務邏輯。
定義請求和返回數據類,數據返回類型結構一般為

public class ProductListResponse
    {
        public bool Success { get; set; }
        public string Message { get; set; }
        public IList<ProductViewModel> Products { get; set; }
    }

而且這裏會涉及到對象的映射,添加viewModel,只包含需要用戶看的的屬性(可用第三方插件AutoMapper)。

表現層

用戶表現層的操作邏輯。常用的模式有MVC和MVVM模式,目的是表現層邏輯與UI層邏輯分離。MVVM的優點是可脫離UI層創建單元測試,但是為每個頁面創建指揮類Presenter也會增加代碼維護負擔。

UI

展現給用戶的界面層。一般需要結合CSS控制頁面樣式和Javascript頁面交互。

代碼下載

Web項目結構分層