1. 程式人生 > >Android設計模式 單例模式(靜態內部類單例模式)

Android設計模式 單例模式(靜態內部類單例模式)

DCL雖然在一定程度上解決了資源消耗、多餘的同步、現成安全問題,但是還是在某些情況下會出現失效問題。成為雙重檢查鎖定(DCL)失效。
建議使用如下程式碼:
package demo;

public class Singleton {
    private Singleton() {
    }

    public static Singleton getInstance() {
        return SingletonHolder.sInstance;
    }

    private static class SingletonHolder {
        private
static final Singleton sInstance = new Singleton(); } }

這種方法不僅能保證現成安全,也能夠保證物件的唯一性,同事也延遲了單例的例項化,所以這是推薦使用的單例模式實現方式。