淺談三層框架一些簡(jiǎn)單的認(rèn)識(shí)
三層框架很多人都接觸過(guò),本文是筆者的一些經(jīng)驗(yàn)和體會(huì)。希望能對(duì)大家了解三層框架有所幫助。框架的作用在于簡(jiǎn)化開發(fā)和標(biāo)準(zhǔn)化開發(fā),為框架而框架,似乎有點(diǎn)得不償失。
心中一直構(gòu)想的寫一個(gè)擴(kuò)展性比較好的簡(jiǎn)單的三層框架,在網(wǎng)上看到過(guò)很多關(guān)于類似的文章,感覺(jué)在實(shí)際項(xiàng)目中并不適用。最近呢,也一直在研究微軟的PetShop4.0,于是心中產(chǎn)生的一個(gè)簡(jiǎn)單三層框架的雛形,歡迎圈內(nèi)人士批評(píng)指教。
UI:一般都構(gòu)建動(dòng)態(tài)的頁(yè)面,采用JQUery和HttpModule
WebServvices:是對(duì)其他語(yǔ)言開放的接口,比如:java,php,或者C++應(yīng)用程序
SqlDependency:是新學(xué)的東西,保持緩存和數(shù)據(jù)庫(kù)同步,按標(biāo)準(zhǔn)來(lái)說(shuō)其屬于BLL層的一部分或者更高的一種抽象。像UI和WebServices提供數(shù)據(jù)。
BLLFactory:業(yè)務(wù)邏輯層。進(jìn)行數(shù)據(jù)驗(yàn)證,權(quán)限判斷,數(shù)據(jù)庫(kù)過(guò)濾的作用。
DALFactory:數(shù)據(jù)庫(kù)訪問(wèn)工廠,僅提供所需的數(shù)據(jù),不做任何處理。處理在BLL層。
我感覺(jué)此框架的優(yōu)點(diǎn):
Inferface:各層之間都用接口提供契約。
(1):有緩存,而且是緩存和數(shù)據(jù)庫(kù)能保持同步
(2):擴(kuò)展性很強(qiáng)。比如:UI層要改成PHP,JSP或者C++應(yīng)用程序,直接調(diào)用WebServices.
(3):各層之間實(shí)現(xiàn)了弱依賴。比如:要做數(shù)據(jù)庫(kù)遷移,只修改DAL層就可以了。不影響其他的變化。
(4):開發(fā)軟件最怕需求變化,而我們把幾乎全部的業(yè)務(wù)邏輯都封裝在BLL層,DAL只提供數(shù)據(jù)。只要接口不變,修改BLL層中的邏輯就可以了。
(5):可以分層部署:DB放一個(gè)服務(wù)器,WebServices:一服務(wù)器,UI:另一服務(wù)器。
本文來(lái)自楊歡歡的博客園文章《初學(xué)者對(duì)于三層框架的理解》
【編輯推薦】