日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

对三层架构的简单改进

發(fā)布時(shí)間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对三层架构的简单改进 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  三層架構(gòu)是很常見(jiàn)的架構(gòu)方式,被很多公司所使用,特別是asp.net。優(yōu)點(diǎn)是使用簡(jiǎn)單,缺點(diǎn)是BLL層與DAL層經(jīng)常會(huì)很多重復(fù)。

今天不是要討論它的優(yōu)缺點(diǎn),而是討論使用它時(shí)存在的問(wèn)題。 我們?cè)谑褂眠^(guò)程中,BLL層一般不會(huì)用來(lái)存儲(chǔ)持久化的變量,而且BLL經(jīng)常被這樣使用的: SomeBLL bll=new SomeBLL( );bll.doSomething( );

圖1:DAL,BLL和Page的關(guān)系 這就有個(gè)問(wèn)題,如果有十個(gè)頁(yè)面需要訪問(wèn)這個(gè)類,那么就需要?jiǎng)?chuàng)建十次這個(gè)變量。如果同時(shí)有一千人在訪問(wèn),那可能是一萬(wàn)個(gè)BLL對(duì)象。還有,每個(gè)BLL對(duì)象,還要new一個(gè)DAL對(duì)象…… 當(dāng)然,.net也不見(jiàn)得會(huì)這么傻,畢竟還有共用,垃圾回收機(jī)制等等。可是,我們真的有必要這么做嗎? 由于BLL對(duì)象一般不是用來(lái)儲(chǔ)存持久化變量,里面只有一些邏輯方法,那么我們是否可以只創(chuàng)建一次BLL對(duì)象,而且是所有瀏覽的用戶都使用同一個(gè)對(duì)象呢? 當(dāng)然是可以的,什么單例模式,什么工廠模式……今天,我們學(xué)一下 ?DataRow,也來(lái)使用一個(gè)自己的方式。 ? 圖2:改進(jìn)的設(shè)計(jì) 我們使用BLLCreator來(lái)創(chuàng)建唯一的一個(gè)靜態(tài)的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( );}

? ??搞定。以后無(wú)論多少人訪問(wèn),永遠(yuǎn)是一個(gè)對(duì)象。當(dāng)然,如果想用泛型什么的,自由發(fā)揮了。

?

轉(zhuǎn)載于:https://www.cnblogs.com/fyan888/p/sancengbug.html

總結(jié)

以上是生活随笔為你收集整理的对三层架构的简单改进的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。