設計模式-JAVA-單例模式

設計模式-JAVA-單例模式

單例模式下的類,在全局中僅生成一個實例對象。
懶漢模式-使用時創建對象,需用添加同步標識。
餓漢模式-類加載時創建對象,不需要加同步標識。

package cn.com.cj.designMode.createMode.single;

/**
 * 單例模式
 */
public class Main {
    public static void main(String[] args) {
        //懶漢模式單例
        ResourceA resourceA  = ResourceA.createResource();
        //餓漢模式單例
        ResourceB resourceB = ResourceB.createResourceB();
    }
}

package cn.com.cj.designMode.createMode.single;

/**
 * 單例類-懶漢模式
 */
public class ResourceA {
    //靜態的私有化自身對象
    private static ResourceA resource = null;

    //私有化構造方法
    private ResourceA() {
        System.out.println("Resource被創建");
    }

    /**
     * 靜態的公共的同步的方法 用於返回自身對象
     * @return
     */
    public static synchronized ResourceA createResource() {
        System.out.println("createResource被調用");
        if( null == resource ) {
            resource = new ResourceA();
        }
        return resource;
    }


}

package cn.com.cj.designMode.createMode.single;

/**
 * 單例類-餓漢模式
 */
public class ResourceB {
    //靜態私有化並且初始化單例類對象
    private static ResourceB resourceB = new ResourceB();
    //私有化構造方法
    private ResourceB(){
        System.out.println("ResourceB被初始化");
    }

    /**
     * 靜態公共方法
     * @return
     */
    public static ResourceB createResourceB() {
        System.out.println("createResourceB被調用");
        return resourceB;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章