建造模式
建造模式是一种创建型设计模式,它将一个复杂对象的构建与其表示分离。它允许你通过一步一步地构建对象来创建不同的表示。它通常用于创建复杂的对象。
建造模式有如下优点:
- 将复杂对象的构建与表示分离。
- 可以更容易地创建不同的表示。
- 可以方便地扩展新类型。
结构 #
建造模式包含以下角色:
- 抽象建造者(Builder): 定义一个接口,指定构建复杂对象各个部分的步骤。
- 具体建造者(ConcreteBuilder): 实现抽象建造者接口,具体实现构建复杂对象的步骤。
- 指挥者(Director): 负责调用具体建造者的方法,构建复杂对象。
- 产品(Product): 最终构建出来的复杂对象。
UML简图 #
classDiagram
direction LR
class Builder {
<< interface >>
+buildPartA()
+buildPartB()
+buildPartC()
+getResult()
}
class ConcreteBuilder1 {
+buildPartA()
+buildPartB()
+buildPartC()
+getResult()
}
class ConcreteBuilder2 {
+buildPartA()
+buildPartB()
+buildPartC()
+getResult()
}
class Director {
+construct()
}
class Product {
+partA
+partB
+partC
}
Builder <|.. ConcreteBuilder1
Builder <|.. ConcreteBuilder2
Director --> Builder
Director --> Product
Product ..> ConcreteBuilder1
Product ..> ConcreteBuilder2
示例代码 #
本示例中我们使用建造模式来创建一部车,一部车显然是一个“复杂”的对象,可以将它的创建分成不同的部分,比如座椅,引擎,行车电脑等等不同的模块。我们使用建造模式来创建一个“车”对象。
...