網(wǎng) 上 書 城
1.3為什么使用三層架構
- 使用三層架構的目的:解耦?。。?/b>
- 同樣拿上面飯店的例子來講:
- 服務員(UI層)辭職——另找服務員;廚師(BLL層)辭職——招聘另一個廚師;采購員(DAL)辭職——招聘另一個采購員。
- 顧客反映:店里服務態(tài)度不好——服務員的問題,開除服務員;店里菜里有蟲子——廚師的問題,換廚師。
- 任何一層發(fā)生變化都不會影響到另外一層?。?!
1.4三層與一層的區(qū)別
一層:
- 當任何一個地方發(fā)生變化時,都需要重新開發(fā)整個系統(tǒng)?!岸鄬印狈旁谝粚?,分工不明確,耦合度高——難以適應需求變化,可維護性低、可擴展性低。
三層:
- 發(fā)生在哪一層的變化,只需更改該層,不需要更改整個系統(tǒng)。層次清晰,分工明確,每層之間耦合度低——提高了效率,適應需求變化,可維護性高,可擴展性高。
1.5三層架構的優(yōu)勢和劣勢
- 優(yōu)勢:
- 結構清晰、耦合度低
- 可維護性高,可擴展性高
- 利于開發(fā)任務同步進行
- 容易適應需求變化
- 劣勢:
- 降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結構,很多業(yè)務可以直接造訪數(shù)據(jù)庫,以此獲取相應的數(shù)據(jù),如今卻必須通過中間層來完成。
- 有時會導致級聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業(yè)務邏輯層和數(shù)據(jù)訪問層中都增加相應的代碼。
- 增加了代碼量,增加了工作量。