![樂在其中設(shè)計模式_第1頁](http://file4.renrendoc.com/view/5e836c8a06fb0ce5792a46a3b0c84e93/5e836c8a06fb0ce5792a46a3b0c84e931.gif)
![樂在其中設(shè)計模式_第2頁](http://file4.renrendoc.com/view/5e836c8a06fb0ce5792a46a3b0c84e93/5e836c8a06fb0ce5792a46a3b0c84e932.gif)
![樂在其中設(shè)計模式_第3頁](http://file4.renrendoc.com/view/5e836c8a06fb0ce5792a46a3b0c84e93/5e836c8a06fb0ce5792a46a3b0c84e933.gif)
![樂在其中設(shè)計模式_第4頁](http://file4.renrendoc.com/view/5e836c8a06fb0ce5792a46a3b0c84e93/5e836c8a06fb0ce5792a46a3b0c84e934.gif)
![樂在其中設(shè)計模式_第5頁](http://file4.renrendoc.com/view/5e836c8a06fb0ce5792a46a3b0c84e93/5e836c8a06fb0ce5792a46a3b0c84e935.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
介紹保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。示例保證一個類僅有一個實例。Single1011^^tenericClass-屬性雪Instance:T-■套類型ISingletonCreatar[AClass-字段二,inst:±tlch:T泛型實現(xiàn)單例模式SingletonusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Singleton日田{白中///<summary>I///泛型實現(xiàn)單例模式///</summary>卜///<typeparamname="T">需要實現(xiàn)單例的類</typeparam>publicclassSingleton<T>whereT:new()攤{斡///<summary>I///返回類的實例///</summary>publicstaticTInstance白中{H申get{returnSingletonCreator.instance;}}IclassSingletonCreator攤{internalstaticreadonlyTinstance=newT();b}TestusingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingPattern.Singleton;publicpartialclassSingleton:System.Web.UI.Page曰田{protectedvoidPage_Load(objectsender,EventArgse)白中{//使用單例模式,保證一個類僅有一個實例Response.Write(Singleton<Test>.Instance.Time);Response.Write("<br/>");IResponse.Write(Singleton<Test>.Instance.Time);Response.Write("<br/>");I//不用單例模式I Testt=newTest();I Response.Write(t.Time);Response.Write("<br/>");I Testt2=newTest();I Response.Write(t2.Time);Response.Write("<br/>");}}publicclassTest曰田{privateDateTime_time;IIpublicTest()白中{ISystem.Threading.Thread.Sleep(3000);_time=DateTime.Now;}publicstringTime由由{get{return_time.ToString();}}}運行結(jié)果2007-2-1022:35:112007-2-1022:35:112007-2-1022:35:142007-2-1022:35:17樂在其中設(shè)計模式(C#)-適配器模式(AdapterPattern)介紹將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。示例有一個Message實體類,某個類對它的操作有Insert()和Get()方法?,F(xiàn)在需要把這個類轉(zhuǎn)到另一個接口,分別對應(yīng)Add()和Select()方法。
MessageModelusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Adapter曰田{攤///<summary>I///Message實體類///</summary>publicclassMessageModel攤{斡///<summary>I ///構(gòu)造函數(shù)///</summary>I ///<paramname="msg">Message內(nèi)容</param>///<paramname="pt">Message發(fā)布時間</param>publicMessageModel(stringmsg,DateTimept)白中{this._message=msg;this._publishTime=pt;}privatestring_message;白中///<summary>///Message內(nèi)容///</summary>publicstringMessage白中{get{return_message;}set{_message=value;}}privateDateTime_publishTime;白中///<summary>I ///Message發(fā)布時間///</summary>publicDateTimePublishTime白中{get{return_publishTime;}set{_publishTime=value;}}}}SqlMessageusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Adapter曰田{攤///<summary>I///源(Adaptee)角色I///Sql方式操作Message///</summary>publicclassSqlMessage白中{R申///<summary>I///獲取Message///</summary>///<returns></returns>publicList<MessageModel>Get()白中{List<MessageModel>l=newList<MessageModel>();l.Add(newMessageModel("SQL方式獲取Message",DateTime.Now));IIreturnl;}攤///<summary>///插入Message///</summary>I///<paramname="mm">Message實體對象</param>///<returns></returns>publicboolInsert(MessageModelmm)攤{〃代碼略Ireturntrue;}}}IMessageusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Adapter日田{白中///<summary>I///目標(Target)角色I///操作Message的接口卜///</summary>IpublicinterfaceIMessage{斡///<summary>I ///獲取Message///</summary>卜 ///<returns></returns>I List<MessageModel>Select();I白中///<summary>I /// 插入MessageI /// </summary>I /// <paramname="mm">Message實體對象</param>卜 /// <returns></returns>I boolAdd(MessageModelmm);}}MessageusingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Adapter曰田{攤///<summary>I///適配器(Adapter)角色I ///類適配器I ///把源適配到這個類///</summary>publicclassMessage:SqlMessage,IMessage攤{斡///<summary>I///獲取Message///</summary>///<returns></returns>publicList<MessageModel>Select()百中{returnbase.Get();}攤///<summary>///插入Message///</summary>I///<paramname="mm">Message實體對象</param>///<returns></returns>publicboolAdd(MessageModelmm)攤{returnbase.Insert(mm);}}}Message?usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacePattern.Adapter曰田{攤///<summary>I///適配器(Adapter)角色I///對象適配器I///把源適配到這個類///</summary>publicclassMessage?:IMessage攤{privateSqlMessage_sqlMessage;白中///<summary>I///構(gòu)造函數(shù)///</summary>publicMessage2()白中{_sqlMessage=newSqlMessage();}白中///<summary>I///獲取Message///</summary>///<returns></returns>publicList<MessageModel>Select()百中{return_sqlMessage.Get();}攤///<summary>///插入Message///</summary>I///<paramname="mm">Message實體對象</param>///<returns></returns>publicboolAdd(MessageModelmm)攤{return_sqlMessage.Insert(mm);}}}clientusingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingPattern.Adapter;publicpartialclassAdapter:System.Web.UI.Page曰田{protectedvoidPage_Load(objectsender,EventArgse)白中{IMessagem;I m=newMessage();I Response.Write("類適配器方式<br/>");I Response.Write(m.Add(newMessageModel("插入",DateTime.Now)));Response.Write("<br/>");I Response.Write(m.Select()[0].Message + " " + m.Select()[0].PublishTime.ToString());Response.Write("<br/><br/>");II m=newMessage2();I Response.Write("對象適配器方式<br/>");I Respo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商平臺的品牌建設(shè)與消費者忠誠度提升策略
- 2025年度漿砌擋土墻施工質(zhì)量追溯與責任追究合同
- 商務(wù)星球版八年級地理上冊2.3《河流和湖泊》聽課評課記錄
- 2025年度化妝品跨境電商進口代理合同
- 2025年度數(shù)據(jù)中心機房網(wǎng)絡(luò)安全合同
- 2025年度個人住房按揭貸款合同公證服務(wù)細則
- 電子產(chǎn)品的綠色材料選擇與應(yīng)用
- 電商平臺上的創(chuàng)意產(chǎn)品營銷策略
- 【培優(yōu)卷】同步分層練習:五年級下冊語文第18課《威尼斯的小艇》(含答案)
- 電商平臺客戶支持中的知識管理應(yīng)用
- 走好群眾路線-做好群眾工作(黃相懷)課件
- NY∕T 4001-2021 高效氯氟氰菊酯微囊懸浮劑
- 《社會主義市場經(jīng)濟理論(第三版)》第七章社會主義市場經(jīng)濟規(guī)則論
- 《腰椎間盤突出》課件
- 漢聲數(shù)學(xué)圖畫電子版4冊含媽媽手冊文本不加密可版本-29.統(tǒng)計2500g早教
- simotion輪切解決方案與應(yīng)用手冊
- 柴油發(fā)電機運行檢查記錄表格
- 典范英語-2備課材料2a課件
- DSC曲線反映PET得結(jié)晶度
- 科學(xué)素養(yǎng)全稿ppt課件(完整版)
- 建筑智能化培訓(xùn)課件
評論
0/150
提交評論