1. 程式人生 > 其它 >設計模式三:單例模式

設計模式三:單例模式

某個類的例項在 多執行緒環境下只會被建立一次出來。

1、概述

某個類的例項在 多執行緒環境下只會被建立一次出來。

單例模式有餓漢式單例模式、懶漢式單例模式;懶漢式如果多人同時呼叫,容易建立多個物件,有執行緒安全所以使用synchronized

2、應用場景

spring的 ioc思想中將物件建立並放入map容器中,用的就是單例模式。用的時候從map容器中取出使用即可。

3、示例

3.1、餓漢模式

public class Singleton{
  private static Singleton instance = new Singleton();
	
  private Singleton(){}
  
  public static Singleton getInstance(){
    return instance;
  }
}

3.2、懶漢模式

public class Singleton{
    private static Singleton instance;

    private Singleton(){}

    //這裡需要加 執行緒同步。如果多個人同時呼叫,很容易建立多個物件
    public static synchronized Singleton getInstance(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }
}