MVC模式與三層架構結合(共4頁)_第1頁
MVC模式與三層架構結合(共4頁)_第2頁
MVC模式與三層架構結合(共4頁)_第3頁
MVC模式與三層架構結合(共4頁)_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上MVC模式與三層架構結合 經過老師與同學們的長期討論,我們決定在項目的開發(fā)過程中應用MVC模式與三層架構結合的方式來實現我們架構的設計。這樣種有兩個好處:首先是可以實現多個視圖,為我們開發(fā)不同的視圖提供了很大的便利,使得我們在完成Web設計后沒有必要在去設計Wap,減少了部分工作量;其次是運用三層架構,使結構層次清晰,各層之間能夠并行設計;最后是采用這樣的設計方式可以增加我們代碼的重用性,減少耦合。一、 MVC模式和三層架構MVC 模式包括三個部分, 即模型( Model) 、視圖( View) 和控制( Controller) , 分別對應于內部數據、數據表示和輸入

2、/ 輸出控制部分。MVC 模式的一般結構如圖1 所示。圖1.MVC模式各部分的關系和功能MVC 設計模式從早期的客戶/ 服務器應用發(fā)展而來, 因此, 它采用的是兩層架構設計。但由于三層架構是對兩層架構的延伸, 所以還是可以將MVC 應用于三層架構的Web 應用中。MVC 與三層架構相互結合補充, 已經成為Web 應用開發(fā)的重要模式。MVC 模式與三層架構設計之間的關系 如圖2所示。圖2.MVC模式與三層架構之間的關系二、 架構設計這里的架構設計與上次的三層架構概要設計大體類似,唯一不同的在于表示層。在這里我們將表示層分為了視圖與控制器。其中視圖完成頁面的顯示功能,而控制器主要完成視圖與表示層邏

3、輯的分離,攔截用戶請求,組合模型與視圖并返回相應視圖給用戶。模塊劃分及交互設計根據前面的討論以及上次的架構概要設計文檔,可在宏觀上將整個系統分為以下幾個模塊:實體類模塊一組實體類的集合,負責整個系統中數據的封裝及傳遞。數據訪問層接口族一組接口的集合,表示數據訪問層的接口。數據訪問層模塊一組類的集合,完成數據訪問層的具體功能,實現數據訪問層接口族。業(yè)務邏輯層模塊一組類的集合,完成業(yè)務邏輯層的具體功能,實現業(yè)務邏輯層接口族。虛擬工廠模塊生成數據訪問層實例輔助類模塊完成全局輔助性功能。視圖模塊完成整個系統頁面的顯示,以及系統與用戶的交互工作控制器模塊完成視圖與表示層邏輯的分離,攔截用戶請求,組合模型

4、與視圖并返回相應視圖給用戶各模塊間交互關系如下圖3.各模塊之間的關系根據以上分析大體可以得出系統將涉及到的項目:Ø Web完成視圖與控制器的實現Ø Entity存放實體類Ø Factory虛擬工廠模式的實現,完成訪問層對象接口實例的生成Ø IDAL存放數據訪問層接口族Ø Utility存放各種工具類及輔助類Ø DAL數據訪問層的實現Ø BLL業(yè)務邏輯層的實現三、 實體類設計實體類是現實實體在計算機中的表示。它貫穿于整個架構,負擔著在各層次及模塊間傳遞數據的職責。在項目中我們的實體類與數據庫中的數據表一一對應,并且實體類中的屬

5、性和表中的字段也是對應的。系統中涉及到的實體類大致如下:個人用戶、企業(yè)用戶、留言、評論、商品、購物車、訂單、普通資訊、行業(yè)資訊、產品、超級管理員、管理員、管理員類別、管理員與管理員類別關系類、廣告等。其中商品還涉及到商品類型:包括大類和小類;企業(yè)用戶涉及到企業(yè)性質;普通資訊涉及到資訊類別;行業(yè)資訊涉及到行業(yè)資訊類別;產品涉及到產品的大類與小類。在實體類設計的時候,我們需要為實體的各字段生成相應的屬性,必須主意各實體之間的關聯。四、 數據訪問層接口設計在分層架構中,接口扮演著非常重要的角色,它不但直接決定了各層中的各個操作類需要實現何種操作,而且它明確了各個層次的職責。接口也是系統實現依賴注入機

6、制不可缺少的部分。本項目的接口設計將按如下順序進行:1.首先由前文的需求分析,列出主要的UI部分。2.分析各個UI需要什么業(yè)務邏輯支持,從而確定業(yè)務邏輯操作。3.分析業(yè)務邏輯層需要何種數據訪問操作,從而確定數據訪問層接口。另外,為保證完全的面向對象特性,接口之間的數據傳遞主要靠實體類或實體類集合,禁止使用DataTable等對象傳遞數據。由需求分析,可以得出用戶界面(UI),在由UI可以識別業(yè)務邏輯操作,通過業(yè)務邏輯操作,我們可以得出相應的接口。具體所涉及到的數據訪問層的接口,這里就不在敘述了。另外,個人覺得由于業(yè)務邏輯層的操作比較單一,主要是從數據訪問層返回數據訪問層的操作結果,所以在項目中

7、不在添加業(yè)務邏輯層接口。五、 虛擬工廠模式設計為了減少工作量,實現簡單的依賴關系,在業(yè)務邏輯層與數據訪問層之間添加一個簡單的工廠來生成數據訪問層實例。具體工廠的生成方式非常簡單,就是添加一個路徑屬性,在配置文件中把需要用到的訪問層實現添加到路徑中。然后對每個接口對象生成實例并返回給業(yè)務邏輯層。六、 數據訪問層的設計在項目中我打算采用LINQ方式實現數據庫的訪問,主要原因是這種方式容易上手,為我們減少了不少的工作量。大體實現方式如下:首先是根據數據表中的內容生成一個LINQ的上下文環(huán)境類;其次是根據數據訪問層接口添加各個具體的類,在類中運用LINQ查詢語言完成數據訪問層的操作。在運用LINQ的過

8、程中,如果要傳入的是一些基本類型,我們就按照基本類型處理;如果是實體對象,針對寫操作,我們先把實體對象的值賦給LINQ中對應實體對象,針對讀操作,我們把讀取的LINQ對應的實體對象轉換成我們系統中自定義的實體對象在各層之間實現傳輸;如果查詢結果是一個集合,我們依然使用傳統的DataTable方式在各層之間傳輸,這里需要將LINQ的查詢結果轉換成對應的DataTable對象。具體的實現方法我們可以寫在輔助類里面。七、 業(yè)務邏輯層設計在實際應用中,業(yè)務邏輯層是至關重要的,他承載著整個系統最核心的部分,也是客戶最關注的部分。在本項目中,業(yè)務邏輯層主要承擔以下職責。Ø 業(yè)務邏輯數據的填充與轉

9、換。如口令的加密等。Ø 核心業(yè)務的實現。這里很多業(yè)務邏輯只有一行代碼,即一個業(yè)務邏輯方法恰好對應一個數據訪問方法,但是也有通過多個數據訪問方法實現業(yè)務的。同時也包含一些不需要通過數據訪問實現的業(yè)務。具體的實現這里就不在敘述,詳細參看代碼的實現。八、 視圖設計在項目中我們將針對Web用戶和Wap用戶提供不同的視圖,這也是我們采用MVC模式的原因之一。一般來說,視圖的優(yōu)劣有一下兩個評價指標:Ø 美觀。即外觀設計漂亮,能給人美的感覺。Ø 易用。即具有良好的用戶體驗,用戶用起來舒服、順手。另外一個重點就是如何針對不同的用戶我們選擇不同的視圖,這里就主要用到我們上周討論的結果,我們將在用戶申請訪問網站時,判定用戶所持設備的瀏覽器是移動設備的瀏覽器,還是計算機的瀏覽器,如果是計算機的瀏覽器,我們將返回Web視圖,如果是移動設備瀏覽器,我們將返回Wap視圖。具體的實現涉及到MVC模式的視圖控制方面的類。這里還需要進一步的學習與了解。另外在視圖設計的過程中,設計的方式與常用的Web Form的設計方式有很大的區(qū)別,這里就需要大家具體掌握MVC視圖的設計方式。九、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論