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