定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
使用场景:
(1) 相同的方法,不同的执行顺序,产生不同的事件结果时;
(2) 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不同时;
(3) 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适;
(4) 当初始化一个对象特别复杂,如参数多,且很多参数都具有默认值时。
Builder 模式在 Android 中较为常用,通常作为配置类的构建器将配置的构建和表示分离,同时也是将配置从目标类中隔离出来,避免过多的 setter 的方法。
Builder 模式比较常见的实现形式是通过调用链实现,这样使得代码更简洁、易懂。
Builder 模式将配置与实现分离,避免了目标类中被过多的接口“污染”。
优点:
(1) 良好的封装性,使用 Builder 模式可以使客户端不必知道产品内部组成的细节;
(2) 建造者独立,容易扩展。
缺点:
会产生多余的 Builder 对象以及 Direcor 对象。消耗内存。