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