寫出Singleton的兩種形式

2021-10-09 10:21:46 字數 628 閱讀 7940

public

class

test01singleton

}//餓漢式

class

singleton1

;private

static singleton1 instance1 =

newsingleton1()

;//加靜態是因為要被靜態呼叫

public

static singleton1 getinstance()

}//懶漢式

class

singleton2

;private

static singleton2 instance2 = null;

public

static singleton2 getinstance()

return instance2;

}}

思路:

1,首先把類的構造方法給私有化

2,建立乙個靜態的物件(餓漢式),懶漢式是建立乙個引用物件賦值為null;

3.建立乙個公開的靜態的get方法,返回值為此類的物件(餓漢式)

4.懶漢式判斷有沒有這個物件(是否為null),有就直接return物件,沒有就建立物件再返回

實現Singleton的兩種方式

法一 公有靜態成員final域 public class elvis 優勢 api很容易知道這是乙個單例類,更簡單 注意 呼叫者可以借助accessbleobject.setaccssible方法通過反射機制呼叫私有構造器,因此如果想抵禦這種攻擊,可以修改構造器,讓它在被要求建第二個例項的時候丟擲異...

單例模式 Singleton 的兩種實現方式

第一種方式 package com.test.util public class singletontest class singleton public static singleton getinstance 第二種實現方式 package com.spring public class sin...

Win32 Application 的兩種形式

工程 easywin 檔案 easywin.cpp 內容 乙個基本的win32程式 include include 函式宣告 bool initwindow hinstance hinstance,int ncmdshow lresult callback winproc hwnd hwnd,uin...