2017.09.21

一直以為 MVC 和三層架構(gòu)是同一個(gè)東西,直到今天才明確的知道:MVC 是 MVC,三層架構(gòu)是三層架構(gòu), 它們之間毫無(wú)關(guān)系。

三層架構(gòu)

三層架構(gòu)是系統(tǒng)級(jí)別的,基于業(yè)務(wù),如下圖:

真正的三層架構(gòu).JPG

整個(gè)過(guò)程:展示層發(fā)送請(qǐng)求到 Controller,Controller 收到請(qǐng)求后交給相應(yīng)的 Service 去查詢對(duì)應(yīng)的數(shù)據(jù),并將結(jié)果返回給展示層,最后展示層將數(shù)據(jù)顯示在頁(yè)面上。

三層架構(gòu)是為了解決整個(gè)應(yīng)用程序中各個(gè)業(yè)務(wù)過(guò)程中不同階段的代碼封裝問(wèn)題,包括:展示層、業(yè)務(wù)邏輯層、持久層。其中, 低層不能調(diào)用上層;同層之間可以互相調(diào)用(持久層、Controller 除外)。

特點(diǎn)

  • 低耦合
  • 可維護(hù)
  • 有了利于軟件工程化管理

缺點(diǎn)

  • 內(nèi)部結(jié)構(gòu)復(fù)雜,不容易理解,文件數(shù)量大。

MVC

MVC 用于創(chuàng)建在域?qū)ο蠛?UI 表示層對(duì)象之間的區(qū)分,基于展示層的設(shè)計(jì)模式。

MVC.png

M:Model(模型層),主要負(fù)責(zé)業(yè)務(wù)邏輯以及數(shù)據(jù)庫(kù)的交換
V:View(視圖),用于顯示數(shù)據(jù)和提交數(shù)據(jù)
C:Controller(控制器),用于捕獲請(qǐng)求并控制請(qǐng)求轉(zhuǎn)發(fā)

各部分之間的通信都是雙向的。View 與 Model 不發(fā)生聯(lián)系,都通過(guò) Presenter 傳遞。View 非常薄,不部署任何業(yè)務(wù)邏輯。

各個(gè)層的作用:

  • 控制器的作用是調(diào)用模型,并調(diào)用視圖,將模型產(chǎn)生的數(shù)據(jù)傳遞給視圖。并讓相關(guān)視圖去顯示。
  • 模型的作用是獲取數(shù)據(jù)并處理數(shù)據(jù)。
  • 視圖的作用是將取得的數(shù)據(jù)進(jìn)行組織、美化等,并最終向用戶終端輸出。

好處:分離了關(guān)注點(diǎn)。后臺(tái)代碼被移到單獨(dú)的類文件,可以最大限度的重復(fù)利用代碼。

缺點(diǎn):

  • 不適合小型應(yīng)用
  • 增加系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性

聯(lián)系與區(qū)別

  1. 聯(lián)系
  • V 相當(dāng)于展示層;C 相當(dāng)于展示層和業(yè)務(wù)邏輯層之間的 Controller;M 相當(dāng)于業(yè)務(wù)邏輯層和持久層。
聯(lián)系.png
  • 都是為了解耦
  1. 區(qū)別
  • 三層架構(gòu)試試軟件架構(gòu),通過(guò)接口實(shí)現(xiàn)
  • MVC 是一個(gè)設(shè)計(jì)模式——解決方案
  • 三層模式試試體系結(jié)構(gòu)模式,MVC 是設(shè)計(jì)模式

MVC 和 三層架構(gòu)相同的設(shè)計(jì)理念就是:把視圖設(shè)計(jì)與數(shù)據(jù)持久化進(jìn)行分離,從而降低耦合性,易于擴(kuò)展,提高團(tuán)隊(duì)開(kāi)發(fā)效率。三層架構(gòu)和 MVC 設(shè)計(jì)模式側(cè)重點(diǎn)不一樣,三層是一種籠統(tǒng)的架構(gòu)思想,沒(méi)有限制具體的設(shè)計(jì);而 MVC 就比較具體的說(shuō)明它的設(shè)計(jì)方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容