victory的博客

长安一片月,万户捣衣声

0%

设计模式 | 单例模式

单例模式

单例模式(Singleton),保证一个类有一个实例,并提供一个访问它的全局访问点。

“通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身保存
它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。

class Singleton{
    private static Singleton instance;
    
    //构造方法让其private,这就堵死了外界利用new创建此类实例的可能
    private Singleton(){
        
    }
    
    //此方法是获得本类实例实例的唯一全局访问点
    public static Singleton getInstance(){
        //若实例不存在,则new一个新的实例,否则返回已有的实例
        if(instance == null){
            instance = new Singleton();
        }
        return instance;
    }
}

public class SingletonTest {
    public static void main(String[] args) {
        Singleton instance = Singleton.getInstance();
        Singleton instance2 = Singleton.getInstance();
        //比较两侧实例化后对象的结果是实例相同
        System.out.println(instance.equals(instance2));//true
    }
}