java23種設計模式 單例模式的幾種實現

2021-08-21 03:37:46 字數 1444 閱讀 6313

該方式建立的單例物件天生具有執行緒安全特性。原因很簡單,jvm類載入器初次載入類的時候就建立了物件。實現起來也比較簡單,只有乙個地方需要注意,就是構造器要設計為private以防止類外部建立物件。

/**

* created by tiantian on 2018/6/29.

*/public class hungrysingleton

public static hungrysingleton getinstance()

}

/**

* created by tiantian on 2018/6/29.

*/public class lazysingleton

public static lazysingleton getinstance()

return uniqueinstance;

}}

這種方式synchronized關鍵字使用在了建立物件的具體時刻(第一次建立時)。並且使用了volatile關鍵字進一步使執行緒安全提高。關於volatile的作用如下:

1)保證了不同執行緒對這個變數進行操作時的可見性,即乙個執行緒修改了某個變數的值,這新值對其他執行緒來說是立即可見的。

2)禁止進行指令重排序。

public class threadsafesingleton 

system.out.println("threadsafesingleton is creating a instance.");

}// 防止反序列化生成物件

private object readresolve()

public static threadsafesingleton getinstance() throws exception }}

return uniqueinstance;

}}

使用列舉的方式實現單例模式最簡單,效能更是不在話下。不僅能避免多執行緒同步問題,也能防止反序列化重新建立物件。

enum singleton 

public void setproperty1(string p)

public void showproperty1()

}

public class staticsingleton

private static class singletonholder

public static staticsingleton getinstance()

public static void main(string args) }​

原型模式

單例模式

建造者模式

工廠模式

策略模式

java23種設計模式之單例設計模式

1 單例設計模式的概念 單例模式確保某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。在計算機系統中,執行緒池 快取 日誌物件 對話方塊 印表機 顯示卡的驅動程式物件常被設計成單例。2 單例設計模式的作用 解決乙個類在記憶體中只存在乙個物件,想要保證物件的唯一。為了避免其他程式過多的建立該...

Java23種設計模式

定義 設計模式 design pattern 是一套反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。單例模式,特點 全域性只有乙個例項。定義 單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須...

Java23種設計模式

建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模 式 狀態模式 訪問者模式 中...