62、單例模式
阿新 • • 發佈:2018-12-22
單例模式
單例模式:程式執行時,讓某個類在記憶體中只有一個物件,即讓一個類只能建立一個物件。
一般分為懶漢式和餓漢式
餓漢式
有三步:
- 構造方法私有化
- 建立當前類物件
- 對外提供公共的訪問方法將SingletonHungary物件暴露給外部
package com.sutaoyu.single_test; public class SingletonHungary { //1.構造方法私有化 private SingletonHungary(){ } //2.建立當前類物件 privatestatic SingletonHungary s = new SingletonHungary(); //3.對外提供公共的訪問方法將SingletonHungary物件暴露給外部 public static SingletonHungary getInstance() { return s; } }
懶漢式
- 構造方法私有化
- 建立當前類的引用
- 對外提供公共的訪問方法將SingletonHungary物件暴露給外部
package com.sutaoyu.single_test; public class SingletonHungary {//1.構造方法私有化 private SingletonHungary(){ } //2.建立當前類物件 private static SingletonHungary s = new SingletonHungary(); //3.對外提供公共的訪問方法將SingletonHungary物件暴露給外部 public static SingletonHungary getInstance() { return s; } }
單例模式的案例Runtime
java.lang包下的Runtime類使用了單例模式,使用該類可以執行windows系統裡面的一些命令,例如:mspaint(開啟畫圖軟體),shutdown(關機)等等。
下面程式碼演示了使用Runtime類開啟畫圖軟體:
package com.sutaoyu.volatlt; import java.io.IOException; public class VolatileTest01 { public static void main(String[] args) throws IOException{ Runtime rt = Runtime.getRuntime(); rt.exec("mspaint"); } }