单例模式

    科技2022-07-15  116

    1、单例设计模式

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

    如何实现?

    饿汉式

    public class SingletonTest { public static void main(String[] args) { Bank instance = Bank.getInstance(); System.out.println(instance); } } class Bank{ //1.私有化类构造器 private Bank(){ } //2.内部创建类的对象 private static Bank instance = new Bank(); //3.提供公共的方法 public static Bank getInstance(){ return instance; } }

    懒汉式(线程不安全)

    public class SingletonTest2 { public static void main(String[] args) { Order instance = Order.getInstance(); System.out.println(instance); } } class Order{ //1.私有化类的构造器 private Order(){ } //2.声明当前类对象,没有初始化。 private static Order instance = null; //3.声明public、static的返回当前类对象的方法 public static Order getInstance(){ if (instance == null){ instance = new Order(); } return instance; } }

    懒汉式(线程安全)

    public class BankTest { public static void main(String[] args) { Bank instance = Bank.getInstance(); System.out.println(instance); } } class Bank{ private Bank(){ } private static Bank instance = null; public static Bank getInstance(){ if (instance == null){ synchronized (Bank.class){ if (instance == null){ instance = new Bank(); } } } return instance; } }

    区分饿汉式和懒汉式

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

    单例模式的优点

    由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。
    Processed: 0.012, SQL: 8