MVC和普通三層架構的區別


 

MVC和普通三層架構的區別

其中這里的模型(Model)和視圖(View )是完全區別於三層架構中的模型(Model)和視圖(View)的。

MVC

1)MVC中的模型(Model)指的是數據模型,用於封裝與應用程序的業務邏輯相關的數據,除此之外還可以封裝數據的處理方法(相當於業務邏輯)。這是完全區別於三層架構的模型層(Model)的。

MVC中模型(Model)的特點:

①有對數據直接訪問的權利,如:對數據庫的訪問;

②模型(Model)“不依賴”視圖(View)和控制器(Controller),即模型(Model)不關心它會被如何顯示或者如何被操作;

③模型(Model)中數據的變化一般會通過一種刷新機制被“公布”;

④為了實現③中的“機制”用於監視此模型的視圖必須事先在此模型上注冊。從而,視圖可以了解在數據模型上發生的改變。

2)視圖(View),這里的視圖基本跟三層中的視圖一樣,都是為了顯示數據,沒有程序上的邏輯。為了實現視圖上數據的刷新,視圖(View)需要訪問它監視的模型(Model),所以應該事先在被它監視的數據那里進行注冊。

3)控制器(Controller),這個概念是在三層中不存在的概念。它主要起到不同層面的組織作用,用於控制應用程序的流程。主要處理事件並作出相應。“事件”主要包括:用戶的行為和數據的改變。

 

普通的三層架構(BLL,DAL,Model)

1)實體(Model),用來創建對象的實體;

2)業務邏輯層(BLL),用來處理復雜的數據間的關系或者是業務間的關系;

3)數據庫訪問層(DAL),用來用來訪問數據庫的;

當然還會有,View(視圖層),用來展示數據;

C# 普通三層架構舉例:

引用關系:

BLL引用DAL和Model

 DAL 需要引用Model

 

Model是實體,不引用

調用流程順序:

BLL(Model)-->DAL(Model)-->DbHelperSQL來執行語句

調用順序:創建一個BLL.Users的對象和一個Model.Users的對象

對Model.Users的實體賦值

……

賦值完成后,調用BLL.User的add方法

 

到達BLL.Users

需要創建一個DAL的對象 ,添加一條數據為例  使用BLL

到BLL.Users的add方法傳遞到DAL.Users的Add方法

 DAL.Users的Add方法組合成sql語句最后調用DbHelperSQl執行這條語句

 最后在DAL里完成了sql語句的拼接和調用DbHelperSQL的執行SQL語句方法完成操作

 

 這里編寫了一個簡單的三層結構,數據庫使用的是MySQL

C#簡單三層結構設計UI、BLL、DAL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM