JavaScript 设计模式-单例模式

单例模式

  • 单例模式仅允许类或对象具有单个实例,并且它使用全局变量来存储该实例
  • 实现方法是判断是否存在该对象的实例,如果已存在则不再创建
  • 使用场景适用于业务场景中只能存在一个的实例,比如弹窗,购物车
// 定义单例函数/类
function SingleShopCart() {
  let instance;
  function init() {
    // 这里定义单例代码
    return {
      buy(good) {
        this.goods.push(good)
      },
      goods: []
    }
  }

  return {
    getInstance: function () {
      if (!instance) {
        instance = init()
      }
      return instance
    }
  }
}

// 获取单例对象
let ShopCart = SingleShopCart()

let cart1 = ShopCart.getInstance()
let cart2 = ShopCart.getInstance()
cart1.buy('apple')
cart2.buy('orange')
console.info(cart1.goods)
console.info(cart2.goods)
console.info(cart1 === cart2)
Keep learning
原文地址:https://www.cnblogs.com/leslie1943/p/13503147.html