单例模式
- 饿汉模式:
由于类的创建是在类加载的时候,初始化static变量的时候创建的,所以叫饿汉模式。也是因为它是类加载的时候创建的实例,所以它是线程安全的,多个实例去获取实例都是安全的。
//将构造方法私有化
private Construction(){}
//私有化并创建一个static实例
private static instance = new Construction();
//提供外部获取实例的方法
public static getInstance(){
return instance;
}
- 懒汉模式:
由于实例的创建是在调用类的static方法的时候,所以叫懒汉模式。也是由于它是调用方法的时候才创建的实例,所以它是线程不安全,如果多个线程同步去获取实例的时候,有可能有创建多个实例。
//将构造方法私有化
private Construction(){}
//私有化一个static实例引用,但是不创建它
private static instance;
//提供外部获取实例的方法,如果实例引用是null,那么才创建它
public static getInstance(){
if(instance==null){
instance = new Constuction();
}
return instance;
}