時(shí)間:2017年08月27日星期日
說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學(xué)源碼:https://github.com/zccodere/s...
學(xué)習(xí)源碼:https://github.com/zccodere/s...
單例模式
概念及應(yīng)用場合 餓漢模式 懶漢模式 餓漢模式與懶漢模式的區(qū)別
什么是設(shè)計(jì)模式
是一套被反復(fù)使用、多數(shù)人知曉的 經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)
目的
使用設(shè)計(jì)模式是為了可重用代碼 讓代碼更容易被他人理解、保證代碼可靠性
單例設(shè)計(jì)模式
有些對象我們只需要一個(gè),比如:配置文件、工具類、線程池、緩存、日志對象等 如果創(chuàng)造出多個(gè)實(shí)例,就會導(dǎo)致許多問題,比如占用過多資源,不一致到結(jié)果等 保證整個(gè)應(yīng)用中某個(gè)實(shí)例有且只有一個(gè)第二章:單例模式實(shí)現(xiàn) 2-1 餓漢式實(shí)現(xiàn)
代碼編寫
1.編寫Singleton類
package com.myimooc.designpattern.c1singleton; /** * @describe 單例模式Singleton-餓漢模式:當(dāng)類被加載時(shí),就創(chuàng)建實(shí)例 * 應(yīng)用場合:有些對象只需要一個(gè)就足夠了,古古代皇帝 * 作用:保證整個(gè)應(yīng)用程序中某個(gè)實(shí)例有且只有一個(gè) * 類型:餓漢模式、懶漢模式 * @author zc * @version 1.0 2017-08-27 */ public class Singleton { // 1.將構(gòu)造方法私有化,不允許外部直接創(chuàng)建對象 private Singleton(){ } // 2.創(chuàng)建類的唯一實(shí)例,使用private static private static Singleton instance = new Singleton(); // 3.提供一個(gè)用于獲取實(shí)例的方法,使用public static public static Singleton getInstance(){ return instance; } }
2.編寫Test類
package com.myimooc.designpattern.c1singleton; public class Test { public static void main(String[] args) { // 餓漢模式 Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if( s1 == s2){ System.out.println("s1和s2是同一個(gè)實(shí)例"); }else{ System.out.println("s1和s2是不同一個(gè)實(shí)例"); } } }2-2 懶漢式實(shí)現(xiàn)
代碼編寫
1.編寫Singleton2類
package com.myimooc.designpattern.c1singleton; /** * @describe 單例模式Singleton-懶漢模式:當(dāng)用戶獲取的時(shí)候,才創(chuàng)建實(shí)例 * 應(yīng)用場合:有些對象只需要一個(gè)就足夠了,古古代皇帝 * 作用:保證整個(gè)應(yīng)用程序中某個(gè)實(shí)例有且只有一個(gè) * 類型:餓漢模式、懶漢模式 * @author zc * @version 1.0 2017-08-27 */ public class Singleton2 { // 1.將構(gòu)造方法私有化,不允許外部直接創(chuàng)建對象 private Singleton2(){ } // 2.創(chuàng)建類的唯一實(shí)例,使用private static private static Singleton2 instance; // 3.提供一個(gè)用于獲取實(shí)例的方法,使用public static public static Singleton2 getInstance(){ if(instance == null){ instance = new Singleton2(); } return instance; } }
2.修改Test類
package com.myimooc.designpattern.c1singleton; public class Test { public static void main(String[] args) { // 餓漢模式 Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if( s1 == s2){ System.out.println("s1和s2是同一個(gè)實(shí)例"); }else{ System.out.println("s1和s2是不同一個(gè)實(shí)例"); } // 懶漢模式 Singleton2 s3 = Singleton2.getInstance(); Singleton2 s4 = Singleton2.getInstance(); if( s3 == s4){ System.out.println("s3和s4是同一個(gè)實(shí)例"); }else{ System.out.println("s3和s4是不同一個(gè)實(shí)例"); } } }第三章:餓漢懶漢區(qū)別 3-1 區(qū)別
區(qū)別
餓漢模式的特點(diǎn)是加載類時(shí)比較慢,但運(yùn)行時(shí)獲取對象的速度比較快,線程安全 懶漢模式的特點(diǎn)是加載類時(shí)比較快,但運(yùn)行時(shí)獲取對象的速度比較慢,線程不安全
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70299.html
時(shí)間:2017年08月30日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:責(zé)任鏈模式簡介 1-1 課程簡介 課程大綱 什么是責(zé)任鏈模式 如何實(shí)現(xiàn)責(zé)任鏈模式 責(zé)任鏈模式如何解耦 責(zé)任鏈模式的應(yīng)用 案例:...
摘要:時(shí)間年月日星期二說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼學(xué)習(xí)源碼第一章適配器模式的簡介簡介生活中的適配器翻譯軟件插座適配器適配器模式定義適配器模式講將一個(gè)類的接口,轉(zhuǎn)換成客戶期望的另外一個(gè)接口。 時(shí)間:2017年08月29日星期二說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s.....
摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。案例介紹飲料機(jī)配置模版把水煮沸泡飲料把飲料倒進(jìn)杯子加調(diào)味料第二章模版模式實(shí)現(xiàn)基本框架代碼編寫編寫類模版模式抽象基類,為所有子類提供一個(gè)算法框架。 時(shí)間:2017年09月02日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源...
時(shí)間:2017年08月31日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:策略模式簡介 1-1 簡介 課程大綱 什么是策略模式 策略模式如何實(shí)現(xiàn) 策略模式總結(jié)篇 實(shí)例案例分享 日常生活中的策略 Wor...
摘要:時(shí)間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。這對所有形態(tài)的工廠模式都是重要的這個(gè)系統(tǒng)的產(chǎn)品有至少一個(gè)的產(chǎn)品族同屬于一個(gè)產(chǎn)品族的產(chǎn)品是設(shè)計(jì)成在一起使用的。 時(shí)間:2017年08月27日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.c...
閱讀 2855·2023-04-25 17:59
閱讀 685·2023-04-25 15:05
閱讀 675·2021-11-25 09:43
閱讀 3037·2021-10-12 10:13
閱讀 3545·2021-09-27 13:59
閱讀 3589·2021-09-23 11:21
閱讀 3888·2021-09-08 09:35
閱讀 571·2019-08-29 17:12