单例模式

写在最前面

Singleton Pattern也就是单例模式

Quote from Wikipedia
In mathematics, a singleton, also known as a unit set, is a set with exactly one
element. For example, the set {0} is a singleton.

单例模式是一种对象创建性模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。

单例模式的要点有三个:一是某个类只能有一个实例;而是必须自行创建整个实例;三是它必须自行向整个系统提供整个实例。

单例的两种模式

  • 饿汉模式
  • 懒汉模式
单例模式_第1张图片
饿汉模式

不管用户是否调用,当类被加载的时候都会创建对象,称之为饿汉模式,而用private static方法又可以保证创建出来的对象是唯一的

单例模式_第2张图片
懒汉模式

当类加载的时候并没有创建实例,当第一个用户创建的时候,才new第二第三好像就不new了

测试是否是同一个对象

单例模式_第3张图片
测试类

饿汉模式和懒汉模式的区别

  • 饿汉模式的特点加载类时比较慢(因为在加载类的时候就要new对象了),运行时获取对象的速度快,线程安全
  • 懒汉模式的特点加载类时比较快,运行时获取对象的速度慢(此时才new),线程不安全

你可能感兴趣的:(单例模式)