軟件分層設計的優缺點
優點:
分層式結構究竟其優勢何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一書中給出了答案:
1、開發人員可以只關注整個結構中的其中某一層;
2、可以很容易的用新的實現來替換原有層次的實現;
3、可以降低層與層之間的依賴;
4、有利於標准化;
5、利於各層邏輯的復用。
概括來說,分層式設計可以達至如下目的:分散關注、松散耦合、邏輯復用、標准定義。
缺點:
“金無足赤,人無完人”,分層式結構也不可避免具有一些缺陷:
1、降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。
2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
關於第一個缺點,完全可以通過系統的緩存機制來減小對性能的影響。第二個缺點,我想只能通過采用一些設計模式來得到改善吧。
轉自http://wenda.tianya.cn/wenda/thread?sort=wsmopts&tid=4b12e2616d254447