1. 什么是单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
2. 单例模式的两种实现
- 2.1 饿汉式
/*
单例模式-饿汉式
*/
class Hungry{
//1.创建一个私有的空参构造器
private Hungry(){
}
//2.声明一个私有对象并直接初始化
private static Hungry instance = new Hungry();
//3.创建一个公共方法来访问私有对象
public static Hungry getInstance(){
return instance;
}
}
- 2.2 懒汉式
/*
单例模式-懒汉式
*/
class Lazy{
//1.创建一个私有的空参构造器
private Lazy(){
}
//2.声明一个私有对象,不初始化
private static Lazy instance = null;
//3.创建一个公共方法来访问私有对象
public static Lazy getInstance(){
if(instance == null){
instance = new Lazy();
}
return instance;
}
}
3. 两种模式的区别
- 3.1 饿汉式
- 类被加载的时候就需要实例化对象,内存开销较大
- 天生就是线程安全的,可以直接用于多线程而不会出现问题
- 3.2 懒汉式
1.需要的时候才去实例化对象,相对来说不浪费内存
2.本身是非线程安全的
网友评论