三層架構(gòu) + MVC

引言

了解什么是系統(tǒng)架構(gòu)晰筛,及解決什么問題
掌握三層架構(gòu)及MVC
了解三層架構(gòu)與MVC的區(qū)別

什么是系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)網(wǎng)上的描述一大堆魁蒜,看得人云里霧里骤竹,特別對新人非常的不友好。就我做架構(gòu)師這么多年的經(jīng)驗來說愚隧,系統(tǒng)架構(gòu)無非就是網(wǎng)絡(luò)架構(gòu)及代碼架構(gòu)

  • 為什么需要系統(tǒng)架構(gòu)?
    我十幾年前從事編程那會锻全,沒有什么系統(tǒng)架構(gòu)的說法奸攻,系統(tǒng)架構(gòu)是隨著系統(tǒng)的功能越來越龐大,復(fù)雜度越來越高虱痕、耦合度越來越高睹耐,才開始慢慢流行的。
    系統(tǒng)的業(yè)務(wù)復(fù)雜度往往高于技術(shù)復(fù)雜度部翘,導(dǎo)致系統(tǒng)復(fù)雜度越來越不可控

  • 系統(tǒng)的業(yè)務(wù)復(fù)雜程度的一般分層

     簡單業(yè)務(wù):只開啟一個事務(wù)
     普通業(yè)務(wù):開啟三個事務(wù)
     復(fù)雜業(yè)務(wù):開啟七個事務(wù)
    

多張表之間的依賴關(guān)系硝训、強(qiáng)關(guān)聯(lián),導(dǎo)致系統(tǒng)的耦合度提高

  • 什么是網(wǎng)絡(luò)架構(gòu)


    系統(tǒng)架構(gòu)發(fā)展歷程
  • 什么是代碼架構(gòu)
    代碼架構(gòu)實際上就是代碼規(guī)范
    系統(tǒng)網(wǎng)絡(luò)架構(gòu)的目的是為了解決系統(tǒng)模塊之間的耦合性
    代碼結(jié)構(gòu)是為了解決代碼之間的耦合性
    代碼的一般規(guī)范:

       每個類只做一件事情
       每個方法只做一件事情
    

什么是三層架構(gòu)

三層架構(gòu)是指:視圖層 View新思、服務(wù)層 Service窖梁,與持久 層 DAO。它們分別完成不同的功能夹囚。

為了更好的降低各層間的耦合度纵刘,在三層架構(gòu)程序設(shè)計中,采用面向抽象編程荸哟。即上層對下層的調(diào)用假哎,是通過接口實現(xiàn)的。而下層對上層
的真正服務(wù)提供者鞍历,是下層接口的實現(xiàn)類舵抹。服務(wù)標(biāo)準(zhǔn)(接口)是相同的,服務(wù)提供者(實現(xiàn)類)可以更換劣砍。這就實現(xiàn)了層間解耦合惧蛹。

三層架構(gòu)接口實現(xiàn)

什么是 MVC 模式

MVC,即 Model 模型刑枝、View 視圖香嗓,及 Controller 控制器
View:視圖,為用戶提供使用界面装畅,與用戶直接進(jìn)行交互靠娱。

Model:模型,承載數(shù)據(jù)洁灵,并對用戶提交請求進(jìn)行計算的模塊饱岸。
其分為兩類掺出,一類稱為數(shù)據(jù)承載 Bean,一類稱為業(yè)務(wù)處理Bean苫费。所謂數(shù)據(jù)承載 Bean 是指實體類汤锨,專門用戶承載業(yè)務(wù)數(shù)據(jù)的,如 Student百框、User 等闲礼。而業(yè)務(wù)處理 Bean 則是指Service 或 Dao 對象, 專門用于處理用戶提交請求的铐维。

Controller:控制器柬泽,用于將用戶請求轉(zhuǎn)發(fā)給相應(yīng)的 Model 進(jìn)行處理,并根據(jù) Model 的計算結(jié)果向用戶提供相應(yīng)響應(yīng)嫁蛇。

MVC 架構(gòu)程序的工作流程

用戶通過 View 頁面向服務(wù)端提出請求锨并,可以是表單請求、超鏈接請求睬棚、AJAX 請求等服務(wù)端 Controller 控制器接收到請求后對請求進(jìn)行解析第煮,找到相應(yīng)的 Model 對用戶請求進(jìn)行處理Model 處理后,將處理結(jié)果再交給 ControllerController 在接到處理結(jié)果后抑党,根據(jù)處理結(jié)果找到要作為向客戶端發(fā)回的響應(yīng) View 頁面包警。頁面經(jīng)渲染(數(shù)據(jù)填充)后,再發(fā)送給客戶端底靠。

MVC 架構(gòu)程序的工作流程

三層架構(gòu)與MVC的區(qū)別

  • 三層是從整個應(yīng)用程序架構(gòu)的角度來分的三層(如果程序需要害晦,還可以分多層)。 比如將數(shù)據(jù)庫操作代碼封裝到一層中暑中,提供一些方法根據(jù)參數(shù)直接返回用戶需要的相應(yīng)數(shù)據(jù)壹瘟,這樣在處理具體的業(yè)務(wù)邏輯的時候,就不用關(guān)心數(shù)據(jù)的存儲問題了痒芝。
  • MVC是在應(yīng)用程序(BS結(jié)構(gòu))的視圖層劃分出來的不同功能的幾個模塊俐筋。 MVC主要是為了解決應(yīng)用程序用戶界面的樣式替換問題,把展示數(shù)據(jù)的 HTML 頁面盡可能的和業(yè)務(wù)代碼分離严衬。

三層架構(gòu)與MVC的相同點

三層架構(gòu)與MVC的相同點
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笆呆,隨后出現(xiàn)的幾起案子请琳,更是在濱河造成了極大的恐慌,老刑警劉巖赠幕,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俄精,死亡現(xiàn)場離奇詭異,居然都是意外死亡榕堰,警方通過查閱死者的電腦和手機(jī)竖慧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門嫌套,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圾旨,你說我怎么就攤上這事踱讨。” “怎么了砍的?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵痹筛,是天一觀的道長。 經(jīng)常有香客問我廓鞠,道長帚稠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任床佳,我火速辦了婚禮滋早,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砌们。我一直安慰自己馆衔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布怨绣。 她就那樣靜靜地躺著角溃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪篮撑。 梳的紋絲不亂的頭發(fā)上减细,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機(jī)與錄音赢笨,去河邊找鬼未蝌。 笑死,一個胖子當(dāng)著我的面吹牛茧妒,可吹牛的內(nèi)容都是我干的萧吠。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼桐筏,長吁一口氣:“原來是場噩夢啊……” “哼纸型!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梅忌,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤狰腌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后牧氮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琼腔,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年踱葛,在試婚紗的時候發(fā)現(xiàn)自己被綠了丹莲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片光坝。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖甥材,靈堂內(nèi)的尸體忽然破棺而出盯另,到底是詐尸還是另有隱情,我是刑警寧澤擂达,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布土铺,位于F島的核電站,受9級特大地震影響板鬓,放射性物質(zhì)發(fā)生泄漏悲敷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一俭令、第九天 我趴在偏房一處隱蔽的房頂上張望后德。 院中可真熱鬧,春花似錦抄腔、人聲如沸瓢湃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绵患。三九已至,卻和暖如春悟耘,著一層夾襖步出監(jiān)牢的瞬間落蝙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工暂幼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留筏勒,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓旺嬉,卻偏偏與公主長得像管行,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邪媳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 又看到有人在問三層架構(gòu)和MVC的關(guān)系捐顷,感覺這種問題有點教條化了。因為它們都在邏輯上將應(yīng)用程序劃為三塊悲酷,湊了一個數(shù)字...
    Ludiwgbet閱讀 1,880評論 1 12
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架套菜,建立于...
    Hsinwong閱讀 22,366評論 1 92
  • 三層架構(gòu)和MVC 三層架構(gòu) (3-tier application) 是將整個業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)...
    hnscdg閱讀 1,765評論 0 8
  • 長短句(三言兩語27——32) 27设易、魚生活在水中; 人生活在灰中蛹头? 28顿肺、江里基本沒有魚了戏溺, 我們每天可...
    文斌今嗨閱讀 549評論 2 12
  • 在規(guī)劃這件事上,我大概經(jīng)歷了以下幾個階段: 階段1:完全拘泥于計劃屠尊,什么事情都要按照事先的規(guī)劃走旷祸,少變通,一旦出現(xiàn)...
    靜靜呀321閱讀 220評論 0 0