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

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

/**
 * 演示懶漢式的單例模式
 */
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;
    }

}

相关推荐

  1. 如何理解模式---懒汉

    2024-01-17 13:06:01       51 阅读
  2. 懒汉模式

    2024-01-17 13:06:01       38 阅读
  3. 设计模式-模式懒汉

    2024-01-17 13:06:01       41 阅读
  4. 模式懒汉

    2024-01-17 13:06:01       34 阅读
  5. 2_单列模式_懒汉模式

    2024-01-17 13:06:01       53 阅读
  6. 如何理解模式----饿汉

    2024-01-17 13:06:01       54 阅读
  7. C++设计模式模式(饿汉懒汉

    2024-01-17 13:06:01       61 阅读
  8. 模式 饿汉懒汉的区别

    2024-01-17 13:06:01       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 13:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 13:06:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 13:06:01       82 阅读
  4. Python语言-面向对象

    2024-01-17 13:06:01       91 阅读

热门阅读

  1. 设计模式-建造者模式

    2024-01-17 13:06:01       55 阅读
  2. 设计模式——建造者模式

    2024-01-17 13:06:01       63 阅读
  3. C++ win32窗口禁止鼠标左键按下拖动Duilib

    2024-01-17 13:06:01       50 阅读
  4. 数据管理系统-week6-数据定义语言(DDL)

    2024-01-17 13:06:01       59 阅读
  5. react组件

    2024-01-17 13:06:01       62 阅读
  6. React16源码: React中的performWork的源码实现

    2024-01-17 13:06:01       43 阅读
  7. Flutter系列:Flutter常见问答(可用于面试)

    2024-01-17 13:06:01       46 阅读
  8. 【架构设计】单体软件向微服务化演变

    2024-01-17 13:06:01       61 阅读