什么是Builder
Builder 模式允许我们编写可读、可理解的代码来设置复杂的对象。
Builder(建造者)设计模式是一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程与其表示相分离,使得同样的构建过程可以创建不同的表示。这种模式通常用于创建一些复杂的对象,这些对象的构建步骤相对稳定,但具体的表示可能有所不同。这个 Builder,其实和模板模式非常的像,但是也有区别,那就是在模板模式中父类对子类中的实现进行操作,在父类之中进行一件事情的处理,但是在 Builder 模式之中,父类和子类都不用关心怎么处理,而是用另一个类来完成对这些方法的有机组合,这个类的职责就是监工,规定了到底要怎么样有机的组合这些方法。在监工类(Director)中,将父类组合进去,然后调用父类的操作来抽象的实现一件事情,这就是面向接口(抽象)变成的妙处了,当然这个 Builder 可以使接口也可以是抽象类,在这里我们使用抽象类。
主要组成部分
以下是 Builder 设计模式的主要组成部分:
-
Director(指挥者): 负责使用 Builder 接口来构建对象的一个类。Director 通常并不负责构建对象的具体部件,而是将构建过程委托给 Builder 接口。
-
Builder(建造者): 定义了构建一个产品所需要的所有步骤接口。具体的构建者类实现这个接口,负责实际构建产品的各个部分。
-
ConcreteBuilder(具体建造者): 实现 Builder 接口,负责构建具体的产品。它包含一个与产品相对应的内部表示,并提供一个用于获取最终产品的方法。
-
Product(产品): 被构建的复杂对象,它包含了需要构建的所有部分。具体的构建者负责将产品的各个部分组装成最终的产品。
使用 Builder 模式的优势在于可以更加灵活地构建复杂对象,而不必担心构建顺序或者构建的具体细节。这种模式适用于那些构建过程稳定,但表示可以有所变化的场景。例如,如果有一个包含多个部分的文档对象,可以使用 Builder 模式来构建不同格式的文档(例如 HTML、PDF)而不改变构建过程。