单例模式

单例模式--概念

单例模式常见的写法有:懒汉式,饿汉式,登记式。
单例模式的特点有:
1.单例类只能有1个实例
2.单例类必须自己创建自己的唯一实例
3.单例类必须给其他对象提供这个实例

选择单例模式可以避免不一致的状态。

懒汉式单例

//懒汉式单例类.在第一次调用的时候实例化自己   
public class Singleton {  
    private Singleton() {}  
    private static Singleton single=null;  
    //静态工厂方法   
    public static Singleton getInstance() {  
         if (single == null) {    
             single = new Singleton();  
         }    
        return single;  
    }  
}  

在第一次调用的时候实例化自己,构造函数是私有的,防止被其他类实例化。它是线程不安全的。

饿汉式单例

public class Singleton1 {  
    private Singleton1() {}  
    private static final Singleton1 single = new Singleton1();  
    //静态工厂方法   
    public static Singleton1 getInstance() {  
        return single;  
    }  
}  

饿汉式在类被创建好后就完成自身实例化,是线程安全的。

你可能感兴趣的:(单例模式)