加油,新时代打工人!
简单粗暴,直接上代码。
23种设计模式定义介绍
java
package mode;
/**
* @author wenhao
* @date 2024/02/20 09:34
* @description 单列模式--饿汉式
* 是否 Lazy 初始化:否
* 是否多线程安全:是
* 实现难度:易
* 描述:这种方式比较常用,但容易产生垃圾对象。
* 优点:没有加锁,执行效率会提高。
* 缺点:类加载时就初始化,浪费内存。
* 它基于 classloader 机制避免了多线程的同步问题,不过,instance 在类装载时就实例化,
* 虽然导致类装载的原因有很多种,在单例模式中大多数都是调用 getInstance 方法,
* 但是也不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化 instance 显然没有达到 lazy loading 的效果。
*/
public class SingleMode3 {
//创建实例对象
private static SingleMode3 singleMode3 = new SingleMode3();
//让构造函数为 private,这样该类就不会被实例化
private SingleMode3(){}
//获取唯一可用的对象
private static SingleMode3 getInstance(){
return singleMode3;
}
public static void main(String[] args) {
SingleMode3 instance = getInstance();
SingleMode3 instance1 = getInstance();
System.out.println(instance == instance1);
}
}