单例模式

介绍

  • 系统中被唯一使用;
  • 一个类只有一个实例;

示例

说明

  • 单例模式需要用到java的特性(private);
  • ES6中没有(typescript除外);
  • 只能用java代码来演示UML图的内容;
class SingleObject {
  login(){
    console.log('login...');
  }
}

SingleObject.getInstance = (function () {
  let instance;
  return function () {
    if (!instance) {
      instance = new SingleObject();
    }
    return instance;
  }
})();

let obj1 = SingleObject.getInstance();
obj1.login();
let obj2 = SingleObject.getInstance();
obj2.login();

console.log('obj1 === obj2', obj1 === obj2) // true

let obj3 = new SingleObject();

console.log('obj1 === obj3', obj1 === obj3) // false

场景

  • jQuery 只有一个 $
  • 登录框;
  • 购物车;
  • vuex和readux中的store;
最后更新时间:
贡献者: DESKTOP-ER5718D\zt