标题 设计模式之单例模式(6种)
**懒汉式:**
public class LanHan {
private static LanHan lanhan;
private LanHan() {
}
//第一种懒汉式(线程不安全)
public static LanHan newInstances() {
if (lanhan == null) {
lanhan = new LanHan();
}
return lanhan;
}
//第二种懒汉式(线程安全)
public synchronized static LanHan newInstances2() {
if (lanhan == null) {
lanhan = new LanHan();
}
return lanhan;
}
//第三中懒汉式 (线程安全效率高)
public static LanHan newInstances4() {
if (lanhan == null) {
synchronized (LanHan.class) {
if (lanhan == null) {
lanhan = new LanHan();
}
}
}
return lanhan;
}
//第四种懒汉式(线程安全)
private static class Lan{
private static final LanHan lanHan =new LanHan();
}
public static LanHan getInstances5(){
return Lan.lanHan;
}
}
饿汉式:
public class EHan {
private static EHan eHan = new EHan();
private EHan() {
}
/**
* 饿汉式单例设计模式
* @return
*/
public static EHan getInstances() {
return eHan;
}
}
枚举单例:
public enum MeiJu {
MEI_JU("测试1", 20);
private String name;
private Integer age;
MeiJu(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public Integer getAge() {
return this.age;
}
}
以上纯属个人学习总结,如果哪里不对还望指出🙏