設計模式之單例設計模式 最初

2022-08-03 05:15:08 字數 1000 閱讀 8013

設計模式之單例設計模式(最初版)

a) 解決的問題:建立唯一乙個物件(使建立的物件具有唯一性)

b) 設計思路:

i. 只要建構函式是public修飾,就能被其他程式呼叫建立任意多個物件—》用private修飾建構函式

ii. 唯一存在的物件怎麼出現?–》直接在本類中new出來

iii. 在本類new出來之後怎麼提供給外界使用?提供對外的public方法;

注意:既然不能通過物件來呼叫,那麼只能通過類名來呼叫

如果要想通過類名來呼叫方法,那麼被呼叫的方法必須用static來修飾

**實現(餓漢式):

class

singleton ;

//4、建立乙個本類的物件,(本類中建立個數可控);由於s變成了靜態的,外界呼叫s沒必要再用方法了,這樣就不行了,所以我們把s私有化,保證getinstance方法有效

private

static singleton s = new singleton ();

//3、對外提供函式讓外界可以獲得本類的物件,由於方法加了static,靜態方法中不能呼叫非靜態成員變數,所以建立物件時需要加static

public

static singleton getinstance()

//測試方法

public void show()

}//測試類

class

singletontest

}

懶漢式:類在載入的時候先不在堆記憶體中開闢空間,在需要使用物件的時候再建立

class single2 

private

static single2 s2 = null;//初始化為null

public

static single2 getinstance()

return s2;

}}

設計模式之 單例設計模式

單例設計模式 單例設計模式概述 單例模式就是要確保類在記憶體中只有乙個物件,該例項必須自動建立,並且對外提供。優點 在系統記憶體中只存在乙個物件,因此可以節約系統資源,對於一些需要頻繁建立和銷毀的物件單例模式無疑可以提高系統的效能。缺點 沒有抽象層,因此擴充套件很難。職責過重,在一定程式上違背了單一...

設計模式之單例設計模式

singleton 保證乙個類只有乙個例項,並提供訪問它的全域性訪問點 類初始化時,立即載入這個物件 沒有延時載入的優勢 載入類時,天然的是執行緒安全的!private static singletondemo1 instance new singletondemo1 private singlet...

設計模式之單例設計模式

目錄 1.到底什麼是設計模式?2.什麼是單例設計模式?3.單列設計模式的兩種實現方式 餓漢式懶漢式 執行緒不安全 4.執行緒安全的寫法 餓漢式懶漢式 執行緒安全 設計模式可以理解為別人成功的故事,通用的套路,前人的經驗,設計模式是一種思想,沒有具體的實現。打乙個比方 世界上只有乙個太陽,乙個月亮,單...