1. 程式人生 > >62、單例模式

62、單例模式

單例模式

單例模式:程式執行時,讓某個類在記憶體中只有一個物件,即讓一個類只能建立一個物件。
一般分為懶漢式和餓漢式

餓漢式

有三步:

    • 構造方法私有化
    • 建立當前類物件
    • 對外提供公共的訪問方法將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; } }

懶漢式

  • 構造方法私有化
  • 建立當前類的引用
  • 對外提供公共的訪問方法將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");
    }
}