设计模式之单例模式

只有一个实例,全局可访问该实例

我们实现一个简单的单例模式,进行实例化的过程中我们先判断实例是否存在,如果不存在则new一个,存在那就返回该实例。多次调用都是返回同一个实例对象

javascript 复制代码
let Singleton = function (name) {
  this.name = name
  // 用来判断实例是否已经创建
  this.instance = null
}

Singleton.prototype.getName = function () {
  console.log(this.name)
}

Singleton.getInstance = function (name) {
  // 如果已经存在实例,则返回这个实例
  if (this.instance) {
    return this.instance
  }
  
  // 不存在则new一个,并且要保存到对应的instance中
  return this.instance = new Singleton(name)
}

let yu = Singleton.getInstance('yujian')
let hua = Singleton.getInstance('hua')

yu.getName()
hua.getName()

结果为

相关推荐
敲代码的约德尔人16 小时前
JavaScript 设计模式完全指南
javascript·设计模式
han_20 小时前
JavaScript设计模式(二):策略模式实现与应用
前端·javascript·设计模式
庞轩px2 天前
HotSpot详解——符号引用、句柄池、直接指针的终极解密
java·jvm·设计模式·内存·虚拟机·引用·klass
Yu_Lijing2 天前
基于C++的《Head First设计模式》笔记——责任链模式
c++·笔记·设计模式·责任链模式
青木川崎2 天前
设计模式之面试题
java·开发语言·设计模式
Yu_Lijing3 天前
基于C++的《Head First设计模式》笔记——生成器模式
c++·笔记·设计模式
sg_knight3 天前
设计模式实战:策略模式(Strategy)
java·开发语言·python·设计模式·重构·架构·策略模式
吐个泡泡v3 天前
Python 开发“设计模式”指南
python·设计模式
程序员小寒3 天前
JavaScript设计模式(一):单例模式实现与应用
javascript·单例模式·设计模式