分層架構設計

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

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

分層架構的好處

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

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

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

分層架構的缺點

分層架構也有幾個缺點url

  • 開發成本高:由於多層分別承擔各自的職責,增長功能須要在多個層增長代碼,這樣不免會增長開發成本。可是合理的能力抽象能夠提升了複用性,又能下降開發成本。
  • 性能略低:業務流須要通過多層代碼的處理,性能會有所消耗。
  • 可擴展性低:由於上下層之間存在耦合度,全部有些功能變化可能涉及到多層的修改。

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

相關文章
相關標籤/搜索