ES6 生成器模式

生成器模式(建筑模式),构建复杂的对象模式,将对象的构建与表现分离。使得相同的构建方式可以有不同的表现。也就是说,在我们需要面临复杂的对象时,当需求发生变化,对象的各个组成部分会发生变化,而构建方法是保持不变的。这时我们可以将构建过程抽象出来。

模式结构
  • builder 生成器,创建对象的各个组成部分
  • director 导向器,组装对象的各个组成部分
  • product 对象, 不需要关注对象各个部分是如何生成的
// 生成器,构建对象的各个部分
class Builder {
 constructor(params) { 
   this.params = params;
 }
 buildA() {
   //构建A部分
   return this;
 }
 buildB() {
   //构建B部分
   return this;
 }
}

//导向器,负责对象构建
class Director {
 constructor(params) {
   const builder = new Builder(params);
   builder.buildA();
   builder.buildB();
 }
}

// 获得对象实例
const product = new Director('params');
优点
  1. 对象的构建与表现分离,代码可以有更好的复用
  2. 更好的扩展性
缺点

1.生成器模式创建的对象一般都具有较多的共同点,所有如果不同的对象差异较大时,那么生成器模式就不是很合适了

  1. 如果对象内部的各个部分过于复杂,那么就需要多个具体的生成器部分,整个代码就会变得庞大
  2. 增加了额外的代码结构,如果对象复杂度不大,那么可以直接构建对象

猜你喜欢

转载自www.cnblogs.com/112358mw/p/11508572.html