Builer 模式是一步一步创建一个复杂对象的创建型模型,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。
定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用场景:
Builder 模式的简单实现:
一个 abstract 修饰的 产品基类: 比如 public abstract class Computer
一个我所需要的具体的 产品 : public dell extends Computer
一个抽象的 Builder 基类 :public abstract class Builder 其中有抽象的 create()、和各种builde方法
一个具体的 Builder 类 :public abstrct class DellBuilder extends Builder 实例化父类的抽象方法
最后 是一个加工类 ,就是使用Builder的地方: 在需要的地方调用DellBuilder的各种Builde方法
在实际开时 ,加工类常常省略,而直接使用builder类进行对象的封装,这个Builder通常为链式调用,它的关键点是每个setter方法都返回自身,也就是return this
Dell dell = new DellBuilder().setA("A").setB("B").create();
其实就是在builder的set方法中最后 return this 返回这个builder对象;
在create()函数中返回 builder所build的对象。
Builder模式的优缺点:
优点:
缺点: