軟件分層必須遵守的原則:
1.每一層都應該都是由類或組件組成。
2.只存在上層對下層的依賴,下層不依賴于上層。
3.上層調用下層的api,下層實現細節的變動不會影響到上層的代碼。
一個軟件系統好的劃分結構應該是:表現層->控制層->業務邏輯層->持久層->數據庫層。
軟件這樣分層的好處:
1.可伸縮性:可以把每一層分布在不同機器上,實現分布式應用。
2.可維護性:如果需求變動,只要相應調整某一層的實現即可。
3.可管理性:分層有利用分工。
4.可擴展性:增加功能只需要在相應層上調整即可。
5.可重要性:業務邏輯模塊則可供系統的多個模塊公共。
缺點:
1.前期設計和編碼工作可能比較繁瑣。
2.調試相應比較困難,必須通過日志記錄系統運行狀態。
補充:
1 必須有一個不同等級的抽象時,應設立一個相應的層次
2 依據邏輯功能的需要來劃分層次,每一層實現一個定義明確的功能集合
3 盡量做到相鄰層間接口清晰,選擇層間邊界時,應盡量使通過該界面的信息流量為最少
4 結構清晰,有利于理解學習