背景:

在idea里预设自己的单例模式代码块,在idea中输入singleton自动联想出单例模式代码

代码准备:

单例模式代码

// 构造器,私有,不能被new
private $CLASS_NAME$(){}

// ClassHolder属于静态内部类,在加载类Demo03的时候,只会加载内部类ClassHolder,
// 但是不会把内部类的属性加载出来
private static class ClassHolder{
// 这里执行类加载,是jvm来执行类加载,它一定是单例的,不存在线程安全问题
// 这里不是调用,是类加载,是成员变量
private static final $CLASS_NAME$ holder =new $CLASS_NAME$();

}

public static $CLASS_NAME$ of(){//第一次调用getInstance()的时候赋值
return ClassHolder.holder;
}
$END$

注意:

代码中$CLASS_NAME$ 这里设置的是变量

idea设置

IntlliJ IDEA -->preferences--->Editor--->Live Templates

idea 预定义的代码模板&单例模式_单例模式

点击2的+,Add

选择3 Live Templates

idea 预定义的代码模板&单例模式_加载_02

1、Abbreviation 

这里输入singleton,这里是自定义的,因为我写的是单例模式,所以是singleton。

2、Description: 

单例模式

3、Template text:

把上面咱们单例模式的代码放进去

4、Edit variables

idea 预定义的代码模板&单例模式_单例模式_03

 Expression 这里选择className()就好了(类名)

5、第一次设置的时候,这里不是Change,是Define

点击Define选择java就好了

 全部设置完,点击Apply 就完事了

然后在写代码的地方,打出singleton,然后回车就会出现刚刚设置的代码