分層架構設計


分層架構是將軟件模塊按水平切分的方式分成多個層,最基本的分層方式是表現層、業務邏輯領域層和數據持久層(MVC)。也有分為四層表現層、應用層、領域層和基礎層,業務邏輯在領域層,基礎層比持久層范圍更大,不僅可以提供持久層服務,還提供緩存服務。四層中應用層是對三層架構中領域層的進一步拆分,但業務邏輯永遠在領域層。

分層架構的好處是高內聚低耦合,單一職責、提高可復用性和降低維護成本,缺點是開發成本高、性能低和可擴展性低。

分層架構的好處

分層架構的目的是通過關注點分離來降低系統的復雜度,同時滿足單一職責、高內聚、低耦合、提高可復用性和降低維護成本。

  • 單一職責:每一層只負責一個職責,職責邊界清晰,如持久層只負責數據查詢和存儲,領域層只負責處理業務邏輯。
  • 高內聚:分層是把相同的職責放在同一個層中,所有業務邏輯內聚在領域層。這樣做有什么好處呢?試想一下假如業務邏輯分散在每一層,修改功能需要去各層修改,測試業務邏輯需要測試所有層的代碼,這樣增加了整個軟件的復雜度和測試難度。
  • 低耦合:依賴關系非常簡單,上層只能依賴於下層,沒有循環依賴。
  • 可復用:某項能力可以復用給多個業務流程。比如持久層提供按照還款狀態查詢信用卡的服務,既可以給申請信用卡做判斷使用,也可以給展示未還款信用卡使用。
  • 易維護:面對變更容易修改。把所有對外接口都放在對外接口層,一旦外部依賴的接口被修改,只需要改這個層的代碼即可。

以上這些既是分層的好處也是分層的原則,大家在分層時需要遵循以上原則,不恰當的分層會違背了分層架構的初衷。

分層架構的缺點

分層架構也有幾個缺點

  • 開發成本高:因為多層分別承擔各自的職責,增加功能需要在多個層增加代碼,這樣難免會增加開發成本。但是合理的能力抽象可以提高了復用性,又能降低開發成本。
  • 性能略低:業務流需要經過多層代碼的處理,性能會有所消耗。
  • 可擴展性低:因為上下層之間存在耦合度,所有有些功能變化可能涉及到多層的修改。

http://ifeve.com/am-hierarchy/?hmsr=toutiao.io


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM