日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法( 二 )


項(xiàng)目分層?這里給大家推薦《阿里巴巴Java開(kāi)發(fā)手冊(cè)》中工程結(jié)構(gòu)里約定的應(yīng)用分層 。

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


【mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法】? 圖中默認(rèn)上層依賴(lài)于下層,箭頭關(guān)系表示可直接依賴(lài),如:開(kāi)放接口層可以依賴(lài)于Web 層,也可以直接依賴(lài)于 Service 層,依此類(lèi)推 。每個(gè)層的定義我們簡(jiǎn)單看下:
終端顯示層:各個(gè)端的模板渲染并執(zhí)行顯示的層 。當(dāng)前主要是 velocity 渲染,JS 渲染,JSP 渲染,移動(dòng)端展示等;
開(kāi)放接口層:可直接封裝 Service 方法暴露成 RPC 接口;通過(guò) Web 封裝成 http 接口;進(jìn)行網(wǎng)關(guān)安全控制、流量控制等;
  • Web層:主要是對(duì)訪(fǎng)問(wèn)控制進(jìn)行轉(zhuǎn)發(fā),各類(lèi)基本參數(shù)校驗(yàn),或者不復(fù)用的業(yè)務(wù)簡(jiǎn)單處理等;
  • Service層:相對(duì)具體的業(yè)務(wù)邏輯服務(wù)層;
  • Manager層:通用業(yè)務(wù)處理層;
1) 對(duì)第三方平臺(tái)封裝的層,預(yù)處理返回結(jié)果及轉(zhuǎn)化異常信息;
2) 對(duì) Service 層通用能力的下沉,如緩存方案、中間件通用處理;
3) 與 DAO 層交互,對(duì)多個(gè) DAO 的組合復(fù)用;
  • DAO層:數(shù)據(jù)訪(fǎng)問(wèn)層,與底層 MySQL、Oracle、Hbase 等進(jìn)行數(shù)據(jù)交互 。
  • 外部接口或第三方平臺(tái):包括其它部門(mén) RPC 開(kāi)放接口,基礎(chǔ)平臺(tái),其它公司的 HTTP 接口 。
?在我們的實(shí)際項(xiàng)目中,一般是不需要設(shè)置web層和manager層的,除非業(yè)務(wù)特別復(fù)雜 。因此推薦項(xiàng)目分層如下:

mvc架構(gòu)模式的原理 MVC架構(gòu)系統(tǒng)設(shè)計(jì)方法


總結(jié)?其實(shí)許多同學(xué)可能會(huì)有些疑惑,由于ajax的出現(xiàn)許多項(xiàng)目現(xiàn)在開(kāi)始實(shí)行前后端分離的做法,尤其是現(xiàn)在優(yōu)秀的前端框架層出不窮,比如Vue、React、AngularJS等,似乎三層架構(gòu)和我們上面的推薦的分層就不適用了 。其實(shí)不是這樣的,我們將頁(yè)面劃分為終端顯示層,無(wú)論項(xiàng)目是否是前后端分離,我們都可以將我們的Java代碼劃分為Controller+services+dao+util+model 。
?文章到這也就結(jié)束了,希望本文對(duì)你有所幫助,也希望我們的項(xiàng)目都可以結(jié)構(gòu)清晰,可以使用分層的方式降低代碼之間的耦合性,讓代碼更容易被維護(hù)和修改 。

推薦閱讀