




已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
設(shè)計模式設(shè)計模式:解決某一類問題最行之有效的方法。Java中有23種設(shè)計模式。單例設(shè)計模式:解決一個類在內(nèi)存中只有一個對象的模式。想要保證對象唯一:1. 為了避免其他程序過多建立該類對象,先禁止其他程序建立對象;2. 還為了讓其他程序可以訪問到該類對象,只好在本類中自定義一個對象;3. 為了方便其他程序?qū)ψ远x對象的訪問,可以 對外提供一些訪問方法。怎么用代碼實現(xiàn):1. 將構(gòu)造函數(shù)私有化;2. 在類中創(chuàng)建一個本類對象;3. 提供一個方法可以訪問該對象。代碼舉例:class Demopublic static void main(String args)Single s1=Single.getInstance();Single s2=Single.getInstance();System.out.println(s1);System.out.println(s2);/通過打印對象在內(nèi)存的地址知道是一個對象class Single/構(gòu)造函數(shù)私有化private Single()/定義一個該類的靜態(tài)對象private static Single s=new Single();/對外提供一個獲取該對象的公有方法public static Single getInstance()return s;打印結(jié)果:Single497934Single497934說明是內(nèi)存中的同一個對象。對于事物該怎么描述還是怎么描述,當(dāng)需要將該事物保證在內(nèi)存中只有一份的時候,才使用單例。在上面的例子中,一個對象沒有任何共享數(shù)據(jù),是沒有任何意義的。所以對如上代碼做如下修改后測試:class Demopublic static void main(String args)Single s1=Single.getInstance();Single s2=Single.getInstance();s1.setAge(12);System.out.println(s1);System.out.println(s2.getAge();/通過打印對象在內(nèi)存的地址知道是一個對象class Singleprivate int age;public void setAge(int age)this.age=age;public int getAge()return this.age;/構(gòu)造函數(shù)私有化private Single()/定義一個該類的靜態(tài)對象private static Single s=new Single();/對外提供一個獲取該對象的公有方法public static Single getInstance()return s;打印結(jié)果如下:Single1c0ec9712說明操作的是同一個對象的共享數(shù)據(jù)。餓漢式:這個是先初始化對象。Single類一進內(nèi)存,就已經(jīng)建立好了對象。代碼如下:class Singleprivate static Single s=new Single();private Single()public static Single getInstance()return s;圖解:懶漢式:對象的方法被調(diào)用時,才初始化,也叫做對象的延遲加載。Single類進內(nèi)存,對象還沒有存在,只有調(diào)用了getInstance方法時才建立對象。class Singleprivate static Single s=null;private Single()public static Single getInstance()if(s=null)s=new Single();return s;圖解:在一般的開發(fā)中使用餓漢式。因為在懶漢式在多線程下會有線程安全問題。比如在懶漢式中,判斷完了s=null,之后sleep了,等待醒來后,就會新創(chuàng)建一個對象。解決辦法是:給if語句和創(chuàng)建對象語句進行同步。但是顯然這樣就會降低程序的執(zhí)行效率。所以使用餓漢式。如果非要使用懶漢式,并且不出現(xiàn)線程安全問題,還的保證效率的話,代碼可以這樣優(yōu)化:class Singleprivate static Single s=null;private Single()public static Single getInstance()if(s=null)synchronized(Single.class)if(s=null)s=new Single();return s;這樣可以減少判斷鎖的次數(shù),提高程序的效率。模板方法設(shè)計模式需求:獲取一段程序執(zhí)行的運行時間。原理:獲取程序開始和結(jié)束的時間并相減即可。獲取時間的函數(shù):System.currentTimeMillis();定義:在定義功能時,功能的一部分是確定的,但是有一部分是不確定的,而確定部分在使用不確定的部分,那么這是就將不確定的部分暴露出去,由該類的子類去完成。如下代碼:/*需求:獲取一段程序執(zhí)行的運行時間。原理:獲取程序開始和結(jié)束的時間并相減即可。獲取時間的函數(shù):System.currentTimeMillis();*/public class Demopublic static void main(String args)MyTimer m=new MyTimer();m.getTime();abstract class Timerpublic void getTime()long start=System.currentTimeMillis();runcode();long end=System.currentTimeMillis();System.out.println(程序運行了:+(end-start)+毫秒);public abstract void runcode();class MyTimer extends Timerpublic void runcode()for(int i=0;i1000;i+)System.out.print( +i);裝飾設(shè)計模式概述1. 對原有類進行了功能的改變,增強。2. 裝飾模式的基本格式。3. 它與繼承有什么不同?4. 了解BufferedReader的原理。練習(xí): 模擬一個BufferedReader類。 模擬一個LineNumberReader類。入
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政文書處理中的數(shù)據(jù)支持與分析試題及答案
- 公交優(yōu)先視角下2025年城市交通擁堵治理的公共交通與城市交通擁堵治理區(qū)域挑戰(zhàn)報告
- 行政管理與組織管理的關(guān)系試題及答案
- 行政管理中風(fēng)險管理的關(guān)鍵要素與試題及答案
- 市政工程中綠色技術(shù)的應(yīng)用試題及答案
- 工程項目管理文化交流試題及答案
- 行政管理的實踐應(yīng)用試題及答案
- 公共關(guān)系案例分析試題及答案
- 桂林2025年桂林市公安局第二批警務(wù)輔助人員招聘120人筆試歷年參考題庫附帶答案詳解
- 廣州2025年廣州市社會科學(xué)院高層次和急需緊缺人才招聘筆試歷年參考題庫附帶答案詳解
- 2023年湖北省武漢第二中學(xué)高考英語一模試卷(含答案解析)
- 增值稅轉(zhuǎn)型改革及增值稅條例課件
- 2023屆高考語文復(fù)習(xí):西藏男孩丁真 課件
- 挖掘機司機技能理論考試題庫大全(600題版)
- 穿支動脈梗死的病因和機制課件
- 吡格列酮聯(lián)合二甲雙胍治療2型糖尿病的循證證據(jù)
- 布草間管理制度(3篇)
- 高校電子課件:產(chǎn)業(yè)經(jīng)濟學(xué)(第五版)
- 法商小課堂傳承保險法商課婚姻保險法商課32張幻燈片
- 畢業(yè)設(shè)計-栲膠法脫硫
- 人教九年級化學(xué)學(xué)生分組實驗
評論
0/150
提交評論