-
餓漢模式與懶漢模式的區(qū)別查看全部
-
單例模式 1:餓漢模式,加載慢,獲取快,線程安全 2:懶漢模式,加載快,獲取慢,線程不安全 單列模式分為: 餓漢式:聲明的同時(shí)直接實(shí)例化。 特點(diǎn):加載類時(shí)比較慢,但運(yùn)行時(shí)獲取對(duì)象的速度比較快,線程安全。 懶漢式:聲明的時(shí)候不實(shí)例化。 特點(diǎn):加載類時(shí)比較快,但運(yùn)行時(shí)獲取對(duì)象的速度比較慢,線程不安全。 實(shí)現(xiàn)單列模式的三個(gè)步驟: 1、將構(gòu)造方法私有化,不允許外界直接創(chuàng)建對(duì)象。 2、聲明類的唯一實(shí)例,使用private static修飾。 3、提供一個(gè)供外界獲取實(shí)例的方法,使用public static修飾。查看全部
-
package singleton; /** * 單例模式 懶漢模式 * @author Lizhijun * */ public class Singleton2 { //1.將構(gòu)造方法私有化 private Singleton2(){ } //2.定義類的唯一實(shí)例(不實(shí)例化) private static Singleton2 instance; //3.在提供對(duì)外獲取實(shí)例的方法時(shí),判斷是否已經(jīng)創(chuàng)建示例,沒創(chuàng)建再創(chuàng)建示例。 public static Singleton2 getInstance() { if (instance==null) { instance = new Singleton2(); } return instance; } } package singleton; public class Test { public static void main(String[] args) { Singleton2 s3 = Singleton2.getInstance(); Singleton2 s4 = Singleton2.getInstance(); if (s3==s4) { System.out.println("s3和s4是同一實(shí)例"); }else{ System.out.println("s3和s4不是同一實(shí)例"); } } }查看全部
-
1、單例模式,懶漢模式:與餓漢不同的是在創(chuàng)建唯一實(shí)例時(shí)不new初始化 2、懶漢模式: a.將構(gòu)造函數(shù)私有化 b.聲明類的唯一實(shí)例,并且私有化 c.提供一個(gè)static修飾的方法獲取當(dāng)前類所創(chuàng)建的唯一的類實(shí)例。 3、理解懶漢:在加載類的時(shí)候,只是聲明一個(gè)引用,并沒有實(shí)例化。只有第一次調(diào)用共有方法時(shí)才實(shí)例化。形象:不急切的,慵懶的 2--懶漢模式實(shí)例化方法: ClassName static instance = null; 3、向外公開一個(gè)訪問實(shí)例對(duì)象的方法。 1--餓漢模式訪問實(shí)例對(duì)象的方法: public static ClassName getInstance(){ return instance; } 2--懶漢模式訪問實(shí)例對(duì)象的方法: 7、分類 public static ClassName getInstance(){ if(instance==null){ instance = new new ClassName(); } return instance; }查看全部
-
4、軟件開發(fā)的目標(biāo) 分析問題的能力 5、什么是單例模式: 整個(gè)項(xiàng)目中,有些對(duì)象只需要一個(gè)比如: 配置文件,工具類,線程池,緩存,日志對(duì)象等。 如果創(chuàng)造出多個(gè)實(shí)例會(huì)造成許多的問題, 比如占用過(guò)多的資源,不一致的結(jié)果等。 單例模式: 保證整個(gè)應(yīng)用中某個(gè)實(shí)例有且只有一個(gè)。 6、原理: 1、私有化構(gòu)造方法(使用private關(guān)鍵字修飾構(gòu)造方法),不允許外部直接創(chuàng)建多個(gè)實(shí)例。 2、保證有一個(gè)實(shí)例(分為懶漢和餓漢兩種實(shí)例化方法),在類內(nèi)部創(chuàng)建一個(gè)私有的自己的實(shí)例,類的唯一實(shí)例。 3. 提供一個(gè)用于獲取實(shí)例的方法 7、分類 餓漢模式:加載類時(shí)比較慢,但運(yùn)行時(shí)獲取對(duì)象的速度比較快;線程安全。 懶漢模式:加載類時(shí)比較快,但運(yùn)行時(shí)獲取對(duì)象的速度比較慢;線程不安全。 //單例模式 --- 餓漢模式 public class Singleton { //1.私有構(gòu)造函數(shù),不允許外部訪問 private Singleton() { } //2.創(chuàng)建類的惟一實(shí)例,私有。 (類變量) static private Singleton instance = new Singleton(); //3.提供訪問惟一實(shí)例的公共方法(類方法) public static Singleton getInstance(){ return instance; } } //單例模式 --- 懶漢模式 public class Singleton2 { //1.私有構(gòu)造函數(shù),不允許外部訪問 private Singleton2() {} //2.創(chuàng)建類的惟一實(shí)例,私有。 (類變量) static private Singleton2 instance; //3.提供訪問惟一實(shí)例的公共方法(類方法) public static Singleton2 getInstance(){ if(instance == null){ instance = new Singleton2(); } return instance; } }查看全部
-
懶漢模式,餓漢模式-----類加載的時(shí)候就會(huì)創(chuàng)建唯一的實(shí)例,不管用戶是否調(diào)用了該實(shí)例 1 將構(gòu)造方式私有化,目的是不應(yīng)許外部直接創(chuàng)建對(duì)象 2 創(chuàng)建類唯一實(shí)例 3 提供一個(gè)用于獲取實(shí)例的方法 構(gòu)造方法私有化,不允許外部直接創(chuàng)建多個(gè)實(shí)例對(duì)象 創(chuàng)建單例的方法一:1.將構(gòu)造函數(shù)私有化,2.自己創(chuàng)建出一個(gè)私有的靜態(tài)對(duì)象,3,對(duì)外提供一個(gè)公有的靜態(tài)方法。 1. 構(gòu)造方法私有化,不允許外部直接創(chuàng)建對(duì)象; 2. 創(chuàng)建類的唯一實(shí)例,使用private static修飾; 3. 提供一個(gè)用于獲取實(shí)例額方法,使用public static修飾。查看全部
-
設(shè)計(jì)模式:一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。 目的:可重用代碼,讓代碼更容易被他人理解、保證代碼可靠性。 單例模式: 有些對(duì)象只需要一個(gè),如:配置文件、工具類、線程池、緩存、日志對(duì)象等 多個(gè)程序讀取一個(gè)配置文件,實(shí)際上配置文件還是只有一個(gè),如果創(chuàng)造出多個(gè)實(shí)例,就會(huì)導(dǎo)致很多問題,占用資源過(guò)多,不一致的結(jié)果等 Java中的設(shè)計(jì)模式:23種 創(chuàng)建型模式:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式; 結(jié)構(gòu)型模式:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式; 行為型模式:策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式; 其它:并發(fā)型模式和線程池模式;查看全部
-
構(gòu)造方法私有化,不允許外部直接創(chuàng)建多個(gè)實(shí)例對(duì)象查看全部
-
設(shè)計(jì)模式:是一套被反復(fù)使用、多數(shù)人知曉、經(jīng)過(guò)分類編寫目的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié) 目的是:實(shí)用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性查看全部
-
1:餓漢模式,加載慢,獲取快,線程安全 2:懶漢模式,加載快,獲取慢,線程不安全查看全部
-
單例模式查看全部
-
餓漢模式線程安全,懶漢模式線程不安全查看全部
-
懶漢模式,多了個(gè)判斷是否為空查看全部
-
懶漢模式,餓漢模式-----類加載的時(shí)候就會(huì)創(chuàng)建唯一的實(shí)例,不管用戶是否調(diào)用了該實(shí)例 1 將構(gòu)造方式私有化,目的是不應(yīng)許外部直接創(chuàng)建對(duì)象 2 創(chuàng)建類唯一實(shí)例 3 提供一個(gè)用于獲取實(shí)例的方法查看全部
-
有些對(duì)象我們只需要有一個(gè),如何保證,通過(guò)單例實(shí)現(xiàn)查看全部
舉報(bào)
0/150
提交
取消