1. 程式人生 > >比餓漢單例模式和懶漢單例模式更好的靜態內部類單例模式

比餓漢單例模式和懶漢單例模式更好的靜態內部類單例模式

簡介

單例模式是一種常見的模式,懶漢模式考慮執行緒安全需要在獲取單例的方法新增synchronized關鍵字實現同步程式碼塊,這樣造成了效能損耗;而餓漢模式不能延遲例項化物件,下面是一個靜態內部類單例模式的實現,既保證了執行緒的安全,有能夠延遲載入,也就是在第一次使用的時候載入。

實現

package com.helper.androidcommon;
/**
 * Created by Shinlone on 2016/8/16.
 */
public class Singleton {

    private Singleton() {}

    /**
     * 獲取例項
     *
     * @return
     */
    public static Singleton getInstance() {
        return SingletonHolder.sIntstance;
    }

    /**
     * 動作A
     */
    public void actionA() {

    }

    /**
     * 動作B
     */
    public void actionB() {

    }

    /**
     * 一個私有的靜態內部類,用於初始化一個靜態final例項
     */
    private static class SingletonHolder {
        private static final Singleton sIntstance = new Singleton();
    }
}

使用

Singleton.getInstance().actionA();//獲取例項使用方法A
Singleton.getInstance().actionB();//獲取例項使用方法B