生成器模式是一种在TypeScript/JavaScript中非常常见的创建型设计模式,它使你能够分步骤创建复杂对象。当你需要创建一个可能有许多配置选项的对象时, 该模式会特别有用。
问题
创建想要生成的产品类
class Product {
public partA: string;
public partB: string;
public partC: string;
public partD: string;
}
创建生成器类
class ProductBuilder {
private product: Product;
constructor() {
// 创建要生成的对象
this.product = new Product();
}
// 以下为给对象添加各部分的方法
public setPartA(partA: string): this {
this.product.partA = partA;
return this;
}
public setPartB(partB: string): this {
this.product.partB = partB;
return this;
}
public setPartC(partC: string): this {
this.product.partC = partC;
return this;
}
public setPartD(partD: string): this {
this.product.partD = partD;
return this;
}
// 完成产品生成
public build(): void {
// 这里可以写具体的构建完成后要执行的操作
console.log(this.product);
}
}
测试代码
const product = new ProductBuilder()
.setPartA('这是Part A')
.setPartB('这是Part B')
.setPartD('这是Part D')
.build();
// Product { partA: '这是Part A',partB: '这是Part B',partD: '这是Part D' }
const product = new ProductBuilder()
.setPartA('这是Part A')
.setPartB('这是Part B')
.build();
// Product { partA: '这是Part A',partB: '这是Part B' }