網(wǎng) 上 書 城

1.3為什么使用三層架構(gòu)

  • 使用三層架構(gòu)的目的:解耦!?。?/b>
  • 同樣拿上面飯店的例子來講:
    • 服務(wù)員(UI層)辭職——另找服務(wù)員;廚師(BLL層)辭職——招聘另一個廚師;采購員(DAL)辭職——招聘另一個采購員。
    • 顧客反映:店里服務(wù)態(tài)度不好——服務(wù)員的問題,開除服務(wù)員;店里菜里有蟲子——廚師的問題,換廚師。
  • 任何一層發(fā)生變化都不會影響到另外一層?。?!

1.4三層與一層的區(qū)別

一層

 

  • 當(dāng)任何一個地方發(fā)生變化時,都需要重新開發(fā)整個系統(tǒng)。“多層”放在一層,分工不明確,耦合度高——難以適應(yīng)需求變化,可維護性低、可擴展性低。

三層

  • 發(fā)生在哪一層的變化,只需更改該層,不需要更改整個系統(tǒng)。層次清晰,分工明確,每層之間耦合度低——提高了效率,適應(yīng)需求變化,可維護性高,可擴展性高。

1.5三層架構(gòu)的優(yōu)勢和劣勢

  • 優(yōu)勢:
    • 結(jié)構(gòu)清晰、耦合度低
    • 可維護性高,可擴展性高
    • 利于開發(fā)任務(wù)同步進行
    • 容易適應(yīng)需求變化
  • 劣勢:
  • 降低了系統(tǒng)的性能。這是不言而喻的。如果不采用分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫,以此獲取相應(yīng)的數(shù)據(jù),如今卻必須通過中間層來完成。
  • 有時會導(dǎo)致級聯(lián)的修改。這種修改尤其體現(xiàn)在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設(shè)計符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼。
  • 增加了代碼量,增加了工作量。