定义
单例模式,属于创建类型的一种常用的软件设计模式。
单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
饿汉式 与 懒汉式
饿汉式:类装载的时候就完成实例化。避免了线程同步问题。可能造成内存浪费。
懒汉式:延迟加载,只有在用到的时候才进行实例化。存在线程不安全问题。
单例模式实现要点
- 创建静态属性存放实例
- 构造方法私有化,使外部无法new创建实例对象
- 提供公有静态方法获取实例对象
单例模式的五种实现方式
单例模式常见五种实现:饿汉式、枚举饿汉式、懒汉式、双检锁懒汉式、内部类懒汉式。
1、饿汉式(可用)
/**
* @author chenxp
* 1. 饿汉式单例
*/
public class Singleton1 {
private static final Singleton1 INSTANCE = new Singleton1();
private Singleton1(){
}
public static Singleton1 getInstance() {
return INSTANCE;
}