史上最全单例模式的写法以及破坏单例方式
今天跟大家讲一个老生常谈的话题,单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。网上的文章也很多,但是参差不齐,良莠不齐,要么说的不到点子上,要么写的不完整,我试图写一篇史上最全单例模式,让你看一篇文章就够了。 单例模式定义及应用场景 单例模式是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。许多时候整个系统只需要拥有一个全局对象,这样有利于我们协调系统整体的行为。 比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 我们写单例的思路是,隐藏其所有构造方法,提供一个全局访问点。 1、饿汉式 这个很简单,小伙们都写过,这个在类加载的时候就立即初始化,因为他很饿嘛,一开始就给你创建一个对象,这个是绝对线程安全的,在线程还没出现以前就实例化了,不可能存在访问安全问题。他的缺点是如果不用,用不着,我都占着空间,造成内存浪费。 public class HungrySingleton { private static final HungrySingleton hungrySingleton = new HungrySingleton(); private