如何理解单例模式---懒汉式?

懒汉式单例模式是一种延迟加载的单例模式实现方式。与饿汉式单例模式不同,懒汉式单例模式在需要时才创建实例。这种单例模式的优点是实现了延迟加载,只有在需要时才会创建实例。这样可以节省资源和提高程序的启动速度。然而,需要注意的是,在多线程环境下,懒汉式单例模式可能存在性能问题。

/**
 * 演示懶漢式的單例模式
 */
public class SingleTon02 {
    public static void main(String[] args) {
        //new Cat("大黃");
        Cat instance = Cat.getInstance();
        System.out.println(instance);


        //再次調用getInstance
        Cat instance2 = Cat.getInstance();
        System.out.println(instance2);

        System.out.println(instance == instance2);//T

    }
}


//希望在程序運行過程中,只能創建一個Cat對象
//使用單例模式
class Cat {
    private String name;
    private static Cat cat ; //默認是null

    //步驟
    //1.仍然構造器私有化
    //2.定義一個static靜態屬性對象
    //3.提供一個public的static方法,可以返回一個Cat對象
    //4.懶漢式,只有當用戶使用getInstance時,才返回cat對象, 後面再次調用時,會返回上次創建的cat對象
    //  從而保證了單例
    private Cat(String name) {
        System.out.println("構造器調用...");
        this.name = name;
    }
    public static Cat getInstance() {

        if(cat == null) {//如果還沒有創建cat對象
            cat = new Cat("小可愛");
        }
        return cat;
    }

}

你可能感兴趣的:(Java,java,开发语言,后端,面试,intellij-idea)