此三层非彼三层——MVCamp;UBD
?學習了三年編程了,到如今這個階段,開始接觸架構,開始認識架構,怎樣設計一個程序的結構,學名稱"架構模式"(architectural pattern)。個人經歷告訴我這在編程中是一門“量到質變”的學問。沒有一定的編程經驗,是談不到架構的。
不說那么多。我也是剛剛接觸,談談我認識的兩種架構模式。
以下是我對MVC。UBD模式的一些個人理解,不一定正確,主要用來整理思路。
一、MVC&UBD的通用思想——高內聚,低耦合
?無論是UBD 還是MVC ,程序不論簡單或復雜,假設從解耦的角度來看三層架構和MVC事實上他們是一致的。
?三層:UI 界面層 BLL 業務邏輯層,DAL數據訪問層,Model 實體層
?MVC
??M 即Model(模型層),主要負責出來業務邏輯以及數據庫的交互
??V 即View(視圖層)。主要用于顯示數據和提交數據
??C 即Controller(控制器),主要是用作捕獲請求并控制請求轉發
?
?依照設計的原則:依賴倒轉的思想。保證這三層是緊密聯系在一起的。但又是互相獨立的,每一層內部的變化不影響其它層。每一層都對外提供接口(Interface)。供上面一層調用。這樣一來,軟件就能夠實現模塊化。改動外觀或者變更數據都不用改動其它層。大慷慨便了維護和升級。
?
?
???
二、MVC簡單理解
?MVC是BS 項目中提出的一種模式。是三層的一種。近期一直在做DRP項目,對于MVC的理解也是基于JSP。Servelet ,DAL來理解的。
????????? 首先V 就是view。視圖,是直接面向終于用戶的"視圖層"(View)。
它是提供給用戶的操作界面,是程序的外殼。
不用過多解釋。
?
??????? 其次是Controller。是控制器的意思。所謂控制器,就是將用戶請求轉發給模型層,經過處理后把結果返回到界面展現的一個中間層。那么Controler究竟管什么工作呢?
?先來看看在Java Web中。這三個層一般的定義,一般在Java Web里,JSP充當V。Servlet充當C,JavaBean充當M,這里的Servlet管什么工作呢?接受輸入。轉到Model層去處理,處理結果保存后轉發到JSP,然后展現數據。所以它的功能就是控制器的基本功能。它就管轉發,在V和M之間轉來轉去。
?
???????? 再來說說M,即Model,在Java Web里說的是JavaBean,JavaBean不僅是實體。還包括了業務邏輯和數據庫操作的類,這和實體類全然是兩回事。
包括了業務邏輯和數據訪問。
?
?
二、UBD模式和MVC模式的比較
?1、劃分:
??三層是基于業務邏輯來分的。而mvc是基于頁面來分的。這是通過在DRP中感受到的,servlet是跟JSP緊密相聯的。
??
?2、作用范圍
?
??三層感覺更像是一種宏觀的架構模式三層是一種思想,在此基礎上,我們或者能夠擴展有四層五層。都是依據業務來進行的變更。
MVC 則是處理BS項目中一個應用模式。由于MVC在Model里包括了業務邏輯層,數據操作層。這里的劃分事實上也是一種三層的縮影體現。
??
?3、頭重腳輕
?
?MVC給我的感覺就是這樣,這就是須要關注一下Model.“三層”中典型的Model層是由實體類構成的,而MVC里,則是由三層中的BLL。DAL,Model組成的。不一樣的概念,盡管名字一樣。
?MVC中model的含金量是極高的。
?
?臨時就這些感悟。對于MVC的學習還在繼續。
轉載于:https://www.cnblogs.com/mengfanrong/p/5179979.html
總結
以上是生活随笔為你收集整理的此三层非彼三层——MVCamp;UBD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中获取网站访客来源的关键词方法
- 下一篇: 【GDAL】聊聊GDAL的数据模型(二)