為什么需要分層
- 不分層的應(yīng)用架構(gòu)
- 代碼不夠清晰
- 難以閱讀
- 代碼的職責(zé)不清晰,難以擴(kuò)展
- 代碼負(fù)責(zé),難以維護(hù)
- 代碼沒做分工,難以組織
- 分層的應(yīng)用架構(gòu)
- 按業(yè)務(wù)功能進(jìn)行分層
- 良好的層次關(guān)系
- 每一層都能夠保持獨(dú)立
三層架構(gòu)
表示層(Presentation Layer):提供與用戶交互的界面
業(yè)務(wù)邏輯層(Business Layer):業(yè)務(wù)邏輯成,實(shí)現(xiàn)各種業(yè)務(wù)邏輯
-
數(shù)據(jù)訪問層(Data Access Layer):數(shù)據(jù)持久層,負(fù)責(zé)存放或者管理業(yè)務(wù)數(shù)據(jù),與數(shù)據(jù)庫打交道的
image.png -
vs MVC
-
Model,View,Controller
image.png
-
博客系統(tǒng)的架構(gòu)設(shè)計(jì)與職責(zé)劃分
- 表示層
- controller,view。。。。
- 業(yè)務(wù)層
- Entity(模型,實(shí)體),Service(服務(wù))
- 數(shù)據(jù)庫訪問層
- Repository(存儲庫的形式),采用JPA的接口
- 職責(zé)劃分
- 博客系統(tǒng)
- 關(guān)系型數(shù)據(jù)庫:mysql,h2,nosql,elasticsearch(非關(guān)系型)
- 文件管理系統(tǒng):nosql,MongoDB(小文件,圖片等)
- 通過RESTful API進(jìn)行交互
- 博客系統(tǒng)

