单例设计模式

单例设计模式

什么是单例设计模式

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

  2. 单例模式有两种方式:(1)饿汉式 (2)懒汉式

单例(单个的实例)

一、 饿汉式

不管程序是否需要这个对象的实例,总是在类加载的时候就先创建好实例,理解起来就像不管一个人想不想吃东西都把吃的先买好,如同饿怕了一样。

步骤:

  1. 构造器私有化 —>防止直接new

  2. 类的内部创建对象

  3. 向外暴露一个静态的公共方法。

  4. 代码实现

    饿汉式

二、懒汉式

如果一个对象使用频率不高,占用内存还特别大,明显就不合适用饿汉式了,这时就需要一种懒加载的思想,当程序需要这个实例的时候才去创建对象,就如同一个人懒的饿到不行了才去吃东西。

步骤:

  1. 构造器仍然私有化

  2. 定义一个static静态属性对象

  3. 提供一个public的static方法,可以返回一个Cat对象

  4. 懒汉式,只有当用户使用getInstance()时,才返回cat对象,后面再次调用时,会返回上次创建的cat对象//从而保证了单例

懒汉式

三、饿汉式 VS 懒汉式

  1. 二者最主要的区别在于创建对象的时机不同:饿汉式是在类加载就创建了对象实例,而懒汉式是在使用时才创建。
  2. 饿汉式不存在线程安全问题,懒汉式存在线程安全问题。
  3. 饿汉式存在浪费资源的可能。因为如果一个对象实例都没有使用,那么饿汉式创建的对象就浪费了,懒汉式使使用时才创建,就不存在这个问题。
  4. 在JavaSE标准类中,java.lang.Runtime就是经典的单例模式。
posted @ 2022-12-05 16:11  凉白茶  阅读(58)  评论(0编辑  收藏  举报