前言:最近在自學(xué)搭建一個(gè)SpringBoot整合mybatisplus+SpringSecurity 括饶、JWT項(xiàng)目官卡。以前整合mybatisplus時(shí)常常在業(yè)務(wù)邏輯層去繼承mybatisplus獨(dú)有的基礎(chǔ)類來(lái)實(shí)現(xiàn)項(xiàng)目中簡(jiǎn)單的增刪改查又或者在數(shù)據(jù)層和控制層做邏輯判斷县爬。當(dāng)下科技飛速發(fā)展一個(gè)框架不能永久使用,框架是要進(jìn)行不斷迭代和更新的,當(dāng)你身為架構(gòu)師或者高級(jí)程序員時(shí)你會(huì)怎樣搭建框架來(lái)順應(yīng)歷史的潮流?
問(wèn)題:如何能夠快速更換底層框架又能做到減少時(shí)間估盘?
MVC分層與三層結(jié)構(gòu)在此特別了解一下。
MVC:MVC(模型M-視圖V-控制器C)M 即Model(模型層)骡尽,主要負(fù)責(zé)出來(lái)業(yè)務(wù)邏輯以及數(shù)據(jù)庫(kù)的交互遣妥,V 即View(視圖層),主要用于顯示數(shù)據(jù)和提交數(shù)據(jù)爆阶,C 即Controller(控制器)燥透,主要是用作捕獲請(qǐng)求并控制請(qǐng)求轉(zhuǎn)發(fā)。在此特別強(qiáng)調(diào)MVC不是二十三種設(shè)計(jì)模式辨图。關(guān)于MVC架構(gòu)分層只有在SpringMVC中才有體現(xiàn)(可能在其他框架有體現(xiàn)班套,知識(shí)淺薄請(qǐng)諒解)。
三層架構(gòu):UI 界面層 BLL 業(yè)務(wù)邏輯層故河,DAL數(shù)據(jù)訪問(wèn)層吱韭。在三層結(jié)構(gòu)中常常出現(xiàn)Model這是非常要注意的,在三層架構(gòu)中是作為實(shí)體類的鱼的,這也是他們之間的區(qū)別的關(guān)鍵所在理盆。在三層架構(gòu)程序設(shè)計(jì)中,采用面向抽象編程凑阶。即上層對(duì)下層的調(diào)用猿规,是通過(guò)接口實(shí)現(xiàn)的。而下層對(duì)上層的真正服務(wù)提供者宙橱,是下層接口的實(shí)現(xiàn)類姨俩。服務(wù)標(biāo)準(zhǔn)(接口)是相同的,服務(wù)提供者(實(shí)現(xiàn)類)可以更換师郑。這就實(shí)現(xiàn)了層間的耦合环葵。
二者區(qū)別:二者之間的區(qū)別是在于層級(jí)的區(qū)別,由上可以得出二者之間的層級(jí)有些不同宝冕。三層可以應(yīng)用于任何語(yǔ)言张遭、任何技術(shù)的應(yīng)用程序;而MVC只是為了解決BS應(yīng)用程序視圖層各部分的耦合關(guān)系地梨。
相同點(diǎn):分層與解耦合菊卷。從解耦的角度來(lái)看他們之間的分層概念其實(shí)都一樣只是劃分不一。
在項(xiàng)目中我們一般把項(xiàng)目按照三層架構(gòu)的方式分層湿刽。要是想順應(yīng)歷史潮流就應(yīng)像搭建積木一樣將每個(gè)版塊的內(nèi)容相互分離之間相互不影響的烁,在分離的基礎(chǔ)上在逐漸的搭建。要是在日后優(yōu)化底層框架的時(shí)候就可以實(shí)現(xiàn)只取走一塊積木其余不變的道理诈闺。
我想說(shuō)的是想要搭建一個(gè)穩(wěn)健可替換的架構(gòu)就要有良好的分層渴庆,讓每個(gè)版塊各司其職。在通俗一點(diǎn)就是別人看你的包名就知道你要做什么知道替換的工程較小。