单例模式
介绍
- 系统中被唯一使用;
- 一个类只有一个实例;
示例
说明
- 单例模式需要用到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;