建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
伪代码分析
// 产品类,表示被构建的复杂对象
class Product {
// 产品的各个部分
partA
partB
partC
}
// 抽象建造者类,定义了构建产品各个部分的接口
interface Builder {
buildPartA()
buildPartB()
buildPartC()
getResult() -> Product
}
// 具体建造者类,实现了构建产品各个部分的具体逻辑
class ConcreteBuilder implements Builder {
buildPartA() {
// 构建产品的 Part A
}
buildPartB() {
// 构建产品的 Part B
}
buildPartC() {
// 构建产品的 Part C
}
getResult() -> Product {
// 返回构建好的产品
}
}
// 指挥者类,负责使用建造者构建产品的过程
class Director {
construct(builder: Builder) {
builder.buildPartA()
builder.buildPartB()
builder.buildPartC()
return builder.getResult()
}
}
// 客户端代码示例
builder = new ConcreteBuilder()
director = new Director()
product = director.construct(builder)
在建造者模式中,产品的构建过程由指挥者(Director)来控制,具体的构建逻辑由具体建造者(ConcreteBuilder)来实现。客户端通过指挥者来构建复杂对象,可以灵活地改变具体建造者以获得不同的产品表示。