设计模式笔记
2020-04-07 本文已影响0人
我是电饭煲
23种模式教程
https://www.runoob.com/design-pattern/proxy-pattern.html
单例模式步骤
public class SingleObject {
//创建 SingleObject 的一个对象
private static SingleObject instance = new SingleObject();
//让构造函数为 private,这样该类就不会被实例化
private SingleObject(){}
//获取唯一可用的对象
public static SingleObject getInstance(){
return instance;
}
}
https://www.runoob.com/design-pattern/singleton-pattern.html
双重锁饱汉单例模式
//饱汉模式的双重锁模式,提高效率
public class Singleton3 {
private volatile static Singleton3 singleton;
private Singleton3(){
}
public static Singleton3 getInstance(){
if(singleton == null){ // 解决锁开销大问题
synchronized(Singleton3.class){ // 解决线程不安全问题
if(singleton == null){ // 解决多次new问题
singleton = new Singleton3();
}
}
}
return singleton;
}
}
java Builder模式
- 用途:
参数太多,主要是用一个内部类去实例化一个对象,避免一个类出现过多构造函数,而且构造函数如果出现默认参数的话,很容易出错。
- 用法:
1.自己写
2.lombok
https://blog.csdn.net/procedure_bear/article/details/81151925
责任链模式
- 使用场景
1.Netty pipeline
2.日志类型(info、warn)
3.优惠券叠加减免
https://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html
https://www.cnblogs.com/father-of-little-pig/p/11488898.html