java之單例設計模式

2021-09-23 22:39:50 字數 1348 閱讀 8844

單例設計模式:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

要實現單例,需要:

1、構造方法私有化

2、宣告乙個本類物件

3、給外部提供乙個靜態方法獲取物件例項

兩種實現方式:

1、餓漢式

2、懶漢式

餓漢式:

public

class

demo1

}//餓漢式

class

singleton1

private

static singleton1 s =

newsingleton1()

;//直接new乙個物件

public

static singleton1 getinstance()

public

void

print()

}

輸出結果:

測試方法

測試方法

true

懶漢式:

public

class

demo2

}//懶漢式

class

singleton2

private

static singleton2 s;

public

static singleton2 getinstance()

return s;

}public

void

print()

}

輸出結果:

測試方法2

測試方法2

true

對比:

懶漢式:在第一次呼叫getinstance方法時,物件被建立,到程式結束後釋放。占用記憶體的時間相對短,效率相對低。

餓漢式:在類被載入後,物件被建立,到程式結束後釋放。占用記憶體的時間相對長,效率相對高。

建議用懶漢式。

在專案中為什麼要使用單例,單例有什麼好處?

在設計一些工具類的時候使用(通常工具類只有功能和方法,沒有屬性),因為工具類可能會被頻繁呼叫。能節省重複建立物件所帶來的記憶體消耗,從而提高效率。

//使用構造方法私有化 + 靜態方法來實現工具類,比如 math

class

tools

public

static

void

print1()

public

static

void

print2()

}

java之單例設計模式

單例設計模式 乙個類有且僅有乙個例項,而且自行例項化然後提供給其他類。單例設計模式分為兩類 餓漢式和飽漢式。餓漢式指的是在類載入時建立。懶漢式指的是在使用的時候進行判斷,如果需要再建立。餓漢式的 如下 public class singlepattern public static singlepa...

java設計模式之單例

單例模式與工具類 提到單例設計模式就不得不提工具類了,在網上有許多關於它們的說法,在這裡我說說自己的看法,從核心的角度來說,單例工具類的區別在於 1.1 單例的思想特點 2 餓漢式 public class singleton 在類載入的時候,建立乙個靜態的物件,乙個類只會載入一次 private ...

Java 設計模式之單例

單例模式又名單子模式。是一種非常常見的設計模式。我們在運用這模式的時候,基本是為了確保整個系統中只有乙個例項。避免頻繁的建立銷毀物件,可以提高效能 避免對共享資源的多重占用,簡化訪問 為整個系統提供乙個全域性訪問點。1 餓汗式 餓漢式單例 public class singleton1 獲取單例 p...