后端2 min read
编程基础之设计模式
编程基础之设计模式
后端
本文主要介绍核心的设计模式以及一些具体的用法
todo
[[TOC]]
单例模式
1、懒汉模式、线程不安全
public class Singleton {
public static Singleton singleton;
private Singleton () {
}
public static Singleton getInstance() {
if (null == singleton) {
singleton = new Singleton();
}
return singleton;
}
}
2、懒汉模式,线程安全
public class Singleton {
public static Singleton singleton;
private Singleton () {
}
public static synchronized Singleton getInstance() {
if (null == singleton) {
singleton = new Singleton();
}
return singleton;
}
}
3、饿汉模式,线程安全
public class Singleton {
public static final Singleton singleton = new Singleton();
private Singleton() {}
public static Singleton getInstantce() {
return singleton;
}
}
4、DCL双重检查锁
public class Singleton {
private volatile static Singleton singleton;
private Singleton (){}
public static Singleton getSingleton() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
5、登记式\静态内部类,线程安全,延迟加载
public class Singleton {
public static class SingletonHodler {
public static final Singleton INSTANCE = new Singleton();
}
private Singleton() {}
public static final Singleton getInstance() {
return SingletonHodler.INSTANCE;
}
}
6、枚举
public enum Singleton {
B {
@Override
public void whatever() {
super.whatever();
}
},
INSTANCE;
public void whatever() {
}
}