单例设计模式(&饿汉式 &懒汉式)

  • 单例设计模式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

  • 如何实现

饿汉式

public class Singleton {
    public static void main(String[] args) {
//        Demo d = new Demo(); //不能直接创建对象
        Demo d1 = Demo.getDemo();
        Demo d2 = Demo.getDemo();
        System.out.println(d1 == d2); //true(说明地址值是一样的 为唯一的一个对象)
    }
}

class Demo{
    //1.私有化类的构造器
    private Demo(){};

    //2.内部创建类的对象
    //4.要求此对象也必须声明为静态的
    private static Demo demo = new Demo();

    //3.提供公共的静态的方法,返回类的对象
    public static Demo getDemo(){
        return demo;
    }
}

懒汉式

public class Singleton1 {
    public static void main(String[] args) {
//        Demo1 d = new Demo1();
        Demo1 d1 = Demo1.getDemo1();
        Demo1 d2 = Demo1.getDemo1();
        System.out.println(d1 == d2);//true
    }
}

class Demo1{
    //1.私有化类的构造器
    private Demo1(){}

    //2.声明当前类对象,没有初始化
    //4.此对象也必须声明为static的
    private static Demo1 Demo1 = null;

    //3.声明public、static的返回当前类对象的方法
    public static Demo1 getDemo1(){
        if (Demo1 == null)
            Demo1 = new Demo1();
        return Demo1;
    }
}
  •  饿汉式和懒汉式的区别

饿汉式:    
 坏处:对象加载时间过长。
 好处:饿汉式是线程安全的   
 懒汉式:                                                                                                                                             好处:延迟对象的创建。
 目前的写法坏处:线程不安全。

上一篇:【题解】《算法零基础100讲》(第41讲) C语言 排序 API


下一篇:BFS打印路径——1076. 迷宫问题