单例模式-设计模式 --001
设计模式与单例模式
- 设计模式是软件开发人员在软件设计中,对常见问题的解决方案的总结和抽象。针对软件开发中常见问题和模式的通用解决方案。一种可以被重复利用的解决方案。
而单例模式是设计模式中最简单的类型之一。 - 定义:确保一个类在绝对情况下都只有一个实例对象,并提供一个全局访问点。
- 应用场景:
1.现实生活中:国家主席、CEO等。
2.spring框架中:ApplicationContext、数据库的连接池等。
饿汉式懒汉式的简单实现
一、饿汉式
- 定义:“饿汉”:从字面意思理解,饿汉怕饿,所以会事先准备好食物,在需要时即可拿来吃。即饿汉式在一开始类调用的时候就已经实例化并创建了单例对象。
- 实现:
/**
* 单例模式实现 9/24/2024
* 1.构造方法私有化
* 2.对外提供一个公开的静态方法,用这个方法获取单个实例
* 3.定义一个静态变量,在类加载的时候,初始化静态变量(只初始化一次)
*
* 饿汉式单例模式: 类加载时对象就创建好了,不管用与否,提前创建好对象。
* */
public class Singleton {
private static Singleton s = new Singleton();
private Singleton(){
}
public static Singleton get(){
return s;
}
}
在测试程序中再去new 多个Singleton对象时得到的对象都是同一个,即Singleton1== Singleton2 == Singleton3…
二、懒汉式
- 定义:“懒汉”:懒汉很懒惰,只有在每次饿的时候才会去准备吃的。在Java应用中即一开始不会实例化对象,只有在使用的时候才会new。
- 实现:
/**
* 懒汉式单例模式:使用这个对象时再创建对象,不要在类加载的时候就创建对象。
* 1.构造方法私有化
* 2.对外提供一个静态方法,通过这个方法可以获取到Singleton对象
* 3.提供一个静态变量,但是变量的值为null
*/
public class Singleton {
private static Singleton s;
private Singleton(){
}
// 将静态变量s先不赋值,当第一次需要调用get方法得到对象时才会创建对象
// 在之后还需要调用get方法时直接返回第一次new好的对象即可。
public static Singleton get(){
if(s == null) {
s = new Singleton();
}
return s;
}
}
标签:Singleton,饿汉,--,对象,001,单例,设计模式,懒汉
From: https://blog.csdn.net/weixin_73330969/article/details/142496850