Allen学习笔记—java设计模式之单例模式

    xiaoxiao2021-03-25  65

    1.单例模式分类:

      懒汉式单例、饿汉式单例、登记式单例(不常用)。

    2.单例模式的特点:

      单例类只能有一个实例;

      单例类必须自己创建自己的唯一实例;

      单例类必须给所有其他对象提供这一实例;

    3.单例模式示例代码:

     饿汉式

    //在类初始化时,已经自行实例化 public class Hungry { private Hungry() {} private static final Hungry hungry = new Hungry(); //静态工厂方法 public static Hungry getInstance() { return hungry; } }

     懒汉式

    //第一次调用方法时,才实例化对象 public class Lazy { private Lazy() {} private static Lazy lazy=null; //静态工厂方法 public static Lazy getInstance(){ if (lazy == null) { lazy = new Lazy(); } return lazy; } }

    3.线程安全性

    饿汉式:在类创建的同时就已经实例化好了一个静态的对象,所以是线程安全的。

    懒汉式:创建对象过程中存在并发状况,所以是线程不安全;

        解决办法:1.在方法上加同步(synchronized);

                          2.双重检查锁定;

                          3.调用静态内部类的方法

    转载请注明原文地址: https://ju.6miu.com/read-37359.html

    最新回复(0)