20220808-单例设计模式

1. 设计模式

  • 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。
  • 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
  • 设计模式就像经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己在思考和摸索。

2 单例设计模式

  • 采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法

2.1 懒汉式

  • 将构造器私有化(即无法在本类之外通过new创建对象)
  • 提供私有化静态本类对象变量,并创建对象
  • 提供公共的方法获取对象引用
public class SingleTon01 {
    private static SingleTon01 s = new SingleTon01();
    private SingleTon01() {
    }
    public static SingleTon01 getInstance() {
        return s;
    }
}

2.2 饿汉式

  • 将构造器私有化(即无法在本类之外通过new创建对象)
  • 提供私有化静态本类对象变量,不创建对象
  • 提供公共的方法,在方法中判断对象时候存在,不存在时创建对象,对外提供对象引用
public class SingleTon02 {
    private static SingleTon02 s;
    private SingleTon02() {
    }
    public static SingleTon02 getInstance() {
        if (s == null) {
            s = new SingleTon02();
        }
        return s;
    }
}

2.3 区别

  • 创建的时机不同,饿汉式是在类加载时就创建对象实例,懒汉式是在使用时创建对象实例
  • 饿汉式不存在线程安全问题,懒汉式存在线程安全问题
  • 饿汉式存在浪费资源的可能。
  • java.lang.Runtime使用了单例设计模式
public class Runtime {
    private static Runtime currentRuntime = new Runtime();
    public static Runtime getRuntime() {
        return currentRuntime;
    }
    private Runtime() {}
    ...

}

Original: https://www.cnblogs.com/zhanghuaze/p/16562572.html
Author: 淡忘的江南
Title: 20220808-单例设计模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615483/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球