對.NET三層結構的理解

最近學了一些關乎.NET結構分層方面的技術和思想,感覺分層結構既很好得體現了OO思想,也很好的融合了設計模式。這樣分層的好處就是極大提高了軟件的可複用,和擴展,易維護以及靈活性。

經典的三層結構分爲:表現層(UI)、業務邏輯層(BLL)和數據訪問層(DAL)。各個分層之間通過對外接口來互相訪問,除此之外就幾乎沒有什麼聯繫,很好體現了模塊之間的松耦合。而層內部主要是處理和本層工作有關的業務,絕不牽扯其他層的業務!這樣如果哪裏工作異常只要對相應層進行修改就可以了,不會涉及到其他層,因此對軟件的可維護性起到了很好的促進作用。

下面就我所學的簡單介紹對三層結構的理解。

一:表現層

表現層主要是對從業務邏輯層裏面調用得到的數據進行顯示,不進行任何的加工。同時該層還會收集用戶操作所需的請求傳遞給業務邏輯層去加工,然後由業務邏輯層去訪問數據訪問層取得數據。

不過該層有時候會兼做業務邏輯層的一些小部分功能,比如對用戶輸入數據的驗證以及操作的合法性等,這其實也可以的,畢竟這樣做提高了效率,也比較直觀。

二:業務邏輯層

在業務邏輯層裏面就是加工處理通過訪問數據訪問層來獲取的數據,然後再傳給表現層顯示出來。同時還會接受從表現層傳來的數據以傳參的形式傳給數據訪問層去請求數據。該層所做的工作比較複雜,做業務上的數據校驗,並實現業務流程。

說白點該層就是表現層與數據訪問層之間的橋樑,兩者的接觸都是通過業務邏輯層來完成的。

三:數據表現層

該層裏面應業務邏輯層的請求去處理與數據庫之間的交互,不對數據做任何業務上的加工。捕獲數據庫交互式出現的異常,拋出或記錄下來。可以想象在這裏SQL語句是最多的,調用數據庫的存儲過程也是在這實現。

 

這就是大體的三層結構的模型,當然如果細分下去還會有五層,六層甚至七層,這就會要用到設計模式中的一些模式,比如工廠模式等。

三層模式之間通過自身提供的對外方法來傳參訪問。比如用戶想登陸系統,在表現層輸入用戶名和密碼,表現層會收集相關的數據傳遞給業務邏輯層,業務邏輯層將數據經過一些處理和封裝之後傳遞給數據訪問層,數據訪問層此時就執行相應的數據庫操作,並將結果返回上一層。

可以說這三層之間松耦合,互不干擾,之間的聯繫僅僅通過各自提供的接口來訪問,哪一層出了問題就去找哪一層去解決。同時層內部的各個類之間也是“松耦合”,如果還互相調用和依賴就會比較複雜,會有“臭蟲”出現。

 

注:以上是我對.NET三層結構的理解,不當之處請見諒。學習三層結構最好的方法就是去研究微軟的PetShop4.0,這東西挺經典,也挺值得去研究的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章