目录
1. 问题
由于最近开发过程中,需要添加埋点,好多参数设置我嚓,比较麻烦,觉得好多参数写上去,后续产品Key-value 要改的话太多同质化的东西要改动,用Builder 设计模式能够解决此类问题,以免多参数设置的过程中出错;
2. 设计模式
2.1 分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。
2.2 六大原则
-
单一职责原则
-
里氏替换原则(Liskov Substitution Principle)
-
依赖倒转原则(Dependence Inversion Principle)
-
接口隔离原则(Interface Segregation Principle)
-
迪米特法则(最少知道原则)(Demeter Principle)
-
合成复用原则(Composite Reuse Principle)
3. Builder 设计模式
一般格式:
/**
* XXXFactory
* Created by machine code on 2019/6/6.
*/
public class XXXFactory {
public static Builder newInstance(Context context) {
return new Builder(context);
}
public static class Builder {
protected XXX xxx;
public Builder(Context context) {
xxx = new XXX(context);
}
public Builder setContext(Context context) {
xxx.setContext(context);
return this;
}
public Builder setValue(String value) {
xxx.setValue(value);
return this;
}
public Builder setFlag(int flag) {
xxx.setFlag(flag);
return this;
}
public void build() {
// TODO: 2019/6/6 here is the build logic operation
}
}
}
- 使用XXXFactory#newInstance() 构建一个Builder 生成器;
- 使用Builder 进行各种参数Context,Value,Flag 等设置操作;
- 使用Builder#build() 进行统一操作;
参考