[设计模式]单例模式
一、概念介绍
单例模式,也叫单子模式,是一种常用的软件设计模式。
在应用这个模式时,单例对象的类必须保证只有一个实例存在。
许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。
比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
二、构建方式
通常单例模式在Java语言中,有两种构建方式:
懒汉方式。指全局的单例实例在第一次被使用时构建。
饿汉方式。指全局的单例实例在类装载时构建。
不管采取哪种构建方式,他们都有共同的特点:
1、构造函数私有化,避免外部类创建实例;
2、创建私有静态对象引用;
3、对外提供一个公共方法获取实例
三、实例演示
1、懒汉方式(懒加载)
/**
* 静态内部类实现懒汉模式
*/
public class Singleton {
//套路1:
// 构造器私有,防止被外部实例化
private Singleton() {
}
//套路2:
//创建私有的静态内部类,只有在使用内部类时才会加载,所以是懒汉
private static class SingletonInstanceClass {
private static Singleton instance = new Singleton();
}
//套路3:
//对外提供一个公共方法获取该实例
public static Singleton getInstance() {
return SingletonInstanceClass.instance;
}
}
2、饿汉模式
/**
* 懒汉方式构建单例
*/
public class Singleton {
//套路1:
// 构造器私有,防止被外部实例化
private Singleton() {
}
//套路2:
//创建私有静态属性(实例化)
private static Singleton instance = new Singleton();
//套路3:
//对外提供一个公共方法获取该实例
public static Singleton getInstance() {
return instance;
}
}
浙公网安备 33010602011771号