美文网首页
单例模式之饿汉式VS懒汉式

单例模式之饿汉式VS懒汉式

作者: a半亩方塘 | 来源:发表于2021-05-24 14:17 被阅读0次

    1. 什么是单例模式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

    2. 单例模式的两种实现

    • 2.1 饿汉式
    /*
        单例模式-饿汉式
     */
    class Hungry{
        //1.创建一个私有的空参构造器
        private Hungry(){
        }
        //2.声明一个私有对象并直接初始化
        private static Hungry instance = new Hungry();
        //3.创建一个公共方法来访问私有对象
        public static Hungry getInstance(){
            return instance;
        }
    
    }
    
    • 2.2 懒汉式
    /*
        单例模式-懒汉式
     */
    class Lazy{
        //1.创建一个私有的空参构造器
        private Lazy(){
        }
        //2.声明一个私有对象,不初始化
        private static Lazy instance = null;
        //3.创建一个公共方法来访问私有对象
        public static Lazy getInstance(){
            if(instance == null){
                instance = new Lazy();
            }
            return instance;
        }
    }
    

    3. 两种模式的区别

    • 3.1 饿汉式
      1. 类被加载的时候就需要实例化对象,内存开销较大
      2. 天生就是线程安全的,可以直接用于多线程而不会出现问题
    • 3.2 懒汉式
      1.需要的时候才去实例化对象,相对来说不浪费内存
      2.本身是非线程安全的

    相关文章

      网友评论

          本文标题:单例模式之饿汉式VS懒汉式

          本文链接:https://www.haomeiwen.com/subject/shsxsltx.html