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