網(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ù)訪問層中都增加相應的代碼。
  • 增加了代碼量,增加了工作量。