单例就是保证类只有一个实例,创建方法:
1. 声明一个类自身的实例(不进行初始化—懒汉式);
2. 创建类的私有无参构造方法,保证外部无法创建;
3. 创建一个公有静态方法,返回当前静态实例,注意保证线程安全。
package com.casic.test;
public class MyFactory {
// 一、必须使用静态声明当前类的私有化实例
private static MyFactory instance;
/**
* 二、懒汉式单例模式创建
* @return
*/
public static MyFactory getInstance() {
// 如果为空,开始创建实例
if(instance==null){
// 使用锁保证线程安全
synchronized (instance) {
if(instance == null){
instance = new MyFactory();
}
}
}
return instance;
}
// 三、构造方法是私有的,其他的类无法创建其实例
private MyFactory(){};
public Object createObject(){
System.out.println("MyFactory.createObject()");
return new Object();
}
}