設計模式-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;
}
}