【工厂模式】

组合工厂函数创建对象

工厂函数:返回一个对象的函数。工厂模式是用来创建对象的一种最常用的设计模式,我们不暴露创建对象的具体逻辑,而是将将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。

组合的工厂函数:在一个工厂函数中定义另外一个工厂函数。

工厂函数允许我们从计算中分离我们的数据:定义一个新的函数,它接受一个对象作为参数并返回一个修改的版本。

This means we’ll always be able to serialize our objects as JSON, which is important for persisting them between sessions, sending them over HTTP or WebSockets, and putting them into data stores.

  createJelly() {
    return {
      __typename: 'jelly',
      colour: 'red',
      scoops: 3,
    };
  }
  creatTop() {
    return {
      __typename: 'topping',
      colour: 'blue',
    };
  }
  createDessert() {
    return {
      __typename: 'dessert',
      bowl: [this.createJelly()],
      topping: this.creatTop(),
    };
  }
  ngOnInit() {
    console.log(this.createDessert());
  }

打印如下:


  eatJelly(jelly: any) {
    if (jelly.scoops > 0) {
      jelly.scoops -= 1;
    }
    return jelly;
  }

  ngOnInit() {
    console.log(this.eatJelly(this.createJelly()));
    console.log(this.createJelly());
  }

 打印如下:

不是在 jelly(果冻) 对象上定义 eat 方法,我们可以定义一个新的函数,它接受一个对象作为参数并返回一个修改的版本。


参考

https://www.sitepoint.com/factory-functions-javascript/  (Quick Tip: What Are Factory Functions in JavaScript)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值