对三层架构的简单改进
生活随笔
收集整理的這篇文章主要介紹了
对三层架构的简单改进
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
三層架構是很常見的架構方式,被很多公司所使用,特別是asp.net。優點是使用簡單,缺點是BLL層與DAL層經常會很多重復。
今天不是要討論它的優缺點,而是討論使用它時存在的問題。 我們在使用過程中,BLL層一般不會用來存儲持久化的變量,而且BLL經常被這樣使用的: SomeBLL bll=new SomeBLL( );bll.doSomething( ); 圖1:DAL,BLL和Page的關系 這就有個問題,如果有十個頁面需要訪問這個類,那么就需要創建十次這個變量。如果同時有一千人在訪問,那可能是一萬個BLL對象。還有,每個BLL對象,還要new一個DAL對象…… 當然,.net也不見得會這么傻,畢竟還有共用,垃圾回收機制等等。可是,我們真的有必要這么做嗎? 由于BLL對象一般不是用來儲存持久化變量,里面只有一些邏輯方法,那么我們是否可以只創建一次BLL對象,而且是所有瀏覽的用戶都使用同一個對象呢? 當然是可以的,什么單例模式,什么工廠模式……今天,我們學一下 ?DataRow,也來使用一個自己的方式。 ? 圖2:改進的設計 我們使用BLLCreator來創建唯一的一個靜態的SomeBLL。 public class BLLCreator{private static SomeBLL _someBll;public static SomeBLL CreateSomeBLL( ){if(_someBll == null){_someBll = new SomeBLL( );}return _someBll;}}public class SomeBLL(){private SomeDAL someDal = new SomeDAL( );protected internal SomeBLL(){// todo something init here }public void doSomething(){}}public class Page1:WebPage{SomeBLL someBll = BLLCreator.CreateSomeBLL( );someBll.doSomething( );}? ??搞定。以后無論多少人訪問,永遠是一個對象。當然,如果想用泛型什么的,自由發揮了。
?
轉載于:https://www.cnblogs.com/fyan888/p/sancengbug.html
總結
以上是生活随笔為你收集整理的对三层架构的简单改进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node-webkit中使用sqlite
- 下一篇: 学习是一个漫长不能松懈的过程