設計模式之單例模式

2021-10-03 10:34:50 字數 1536 閱讀 1185

單例模式就是保證乙個類的例項在」特定範圍」只有乙份(例如乙個 jvm 內部,乙個執行緒內部),並且

提供乙個全域性訪問點可以訪問到這份例項。

● spring(singleton 作用域的 bean 物件)

● mybatis(errorcontext 物件是每個執行緒乙份此類例項)

● ......

● 第一種 此設計在多執行緒環境中存在不安全。

class

singleton01

private

static singleton01 instance;

public

static singleton01 getinstance()

return instance;

}}

● 第二種 適合大物件,但是頻繁訪問會導致大量阻塞。

class

singleton02

private

static singleton02 instance;

public

static singleton02 getinstance()

}return instance;

}}

● 第三種 基於singleton02優化。

class

singleton03

private

static

volatile singleton03 instance;

public

static singleton03 getinstance()

}}return instance;

}}

● 第四種

class

singleton04

private

static singleton04 instance;

public

static

synchronized singleton04 getinstance()

return instance;

}}

● 第五種 適合小物件 , 頻繁訪問

class

singleton05

public

static singleton05 getinstance()

public

static

void

show()

}

● 第六種 適合大物件 , 頻繁訪問

class

singleton06

private

singleton06()

public

static singleton06 getinstance()

public

static

void

show()

}

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...

設計模式之 單例模式

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...