美文网首页
单例模式 - 演示与场景

单例模式 - 演示与场景

作者: EmilWong | 来源:发表于2019-06-09 23:17 被阅读0次
    • 系统中被唯一使用
    • 一个类只有一个实例
      示例:
    • 登录框
    • 购物车

    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)
    
    let obj3 = new SingleObject() // 无法完全控制
    obj3.login()
    console.log('obj1 === obj3', obj1 === obj3) //false
    

    使用场景:
    jQuery只有一个$

    // jQuery只有一个$
    if (window.jQuery != null) {
      return window.jQuery
    } else {
      // 初始化
    }
    

    模拟登录框
    vuex和redux中的store

    相关文章

      网友评论

          本文标题:单例模式 - 演示与场景

          本文链接:https://www.haomeiwen.com/subject/zdyoxctx.html