天天看點

三層體系結構總結(四)

前一段時間幫一個項目組做他們的項目,有幸了解了一下他搭建的架構。相比起以前所見過的架構,我覺得這個應該算是不錯的。大體結構如下圖:

三層體系結構總結(四)

1、 層與層之間依賴于接口:

UI依賴于IBLL,IBLL依賴于IDAL,這樣做在設計模式中叫做依賴倒置。也就是說依賴于抽象,而不是具體實作。如果今後的業務邏輯有變動可以不變程式的主體架構,靈活性較好。

2、 使用Castle對類進行管理:

由于層與層之間使用接口連接配接,但是畢竟要實作多态已實作實際的業務邏輯。使用Castle對類的管理機制,以依賴注入的方式,将接口對應的子類關聯起來。這樣做可以把變化放到運作時,維護性較好。

3、 Singleton模式的應用

關鍵的類型因為長期使用,而且其本身占用資源較高,使用Singleton模式,用長期占用空間換取因執行個體化而造成的時間上的浪費。性能較好。

覺得還存在的問題:

對于複雜業務邏輯處理的還是不太理想:

對于一個事物裡有多個操作的問題是這樣解決的,在IDAL中有一個方法的入口點,IBLL調用這個入口方法。在DAL擴充這個方法時進行對多個方法業務上的拼裝。這樣感覺好像把業務層的任務放到了資料層解決。

不過對于這個問題,現在找到了一些解決方法,在VS2003中可以使用TransactionAttribute屬性将操作放到一個事務中。在VS2005中有一個Transaction的類(聽說的),可以很好的解決這個問題。

下一片文章中打算研究一下這個問題,當然重心放在VS2005上,畢竟VS2003将是過去時,何況TransactionAttribute是COM+中的東西,使用起來覺得不友善。

繼續閱讀