美文网首页
单例模式

单例模式

作者: 池鱼_故渊 | 来源:发表于2021-01-18 23:11 被阅读0次

单例模式

概念:保证一个类只有实例,并提供一个访问它的全局访问点

应用场景:前端,弹窗应用比较广泛,比如登录弹窗,无论我们点击多少次登录弹窗,我们的弹窗应该只创建一次

看下伪代码

// es5版本
var Singleton = function (name) {
  this.name = name;
  this.instance = null;
};
Singleton.getInstance = function () {
  // 定义instance 创建并且记录状态,如果下次再次进入,先判断是否存在,如果存在那么直接返回
  let instance; // 核心代码
  return function () {
    if (!instance) {
      // 核心代码
      instance = new Singleton();
    }
    return instance;
  };
};

// es6版本
class Singleton {
  constructor() {}
}
Singleton.getInstance = (function () {
  // 定义instance 创建并且记录状态,如果下次再次进入,先判断是否存在,如果存在那么直接返回
  let instance; // 核心代码
  return function () {
    if (!instance) {
      // 核心代码
      instance = new Singleton();
    }
    return instance;
  };
})();

let s1 = Singleton.getInstance();
let s2 = Singleton.getInstance();
console.log(s1 === s2); // true
// vue 中也有使用到单例模式
let Vue; // bind on install
export function install(_Vue) {
  if (Vue && _Vue === Vue) {
    // 如果发现 Vue 有值,就不重新创建实例了
    return;
  }
  Vue = _Vue;
  applyMixin(Vue);
}

类似 element 这样的 ui 组件库,messageBox 也使用到单例模式,全局只创建一个弹窗

相关文章

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式

    单例模式1 单例模式2

  • java的单例模式

    饿汉单例模式 懒汉单例模式

网友评论

      本文标题:单例模式

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