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. 增加了额外的代码结构,如果对象复杂度不大,那么可以直接构建对象

转载于:https://www.cnblogs.com/112358mw/p/11508572.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值