引言
了解什么是系統(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)
-
什么是代碼架構(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)了層間解耦合惧蛹。
什么是 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ā)送給客戶端底靠。
三層架構(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ù)代碼分離严衬。