设计模式之单例模式

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

我们实现一个简单的单例模式,进行实例化的过程中我们先判断实例是否存在,如果不存在则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()

结果为

相关推荐
咖啡八杯8 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
:mnong12 小时前
学习创建结构行为设计模式
设计模式
w_t_y_y14 小时前
Agent设计模式(四)多模态融合模式(Multi-Modal Fusion)
设计模式
zhouhui00115 小时前
订单状态的 if-else 地狱上线就崩——状态模式的工业级落地
设计模式
geovindu16 小时前
go: Reactor Pattern
开发语言·后端·设计模式·golang·反应器模式
一只旭宝1 天前
【C++入门精讲22】常见设计模式
c++·设计模式
许彰午1 天前
38_Java设计模式之装饰器模式
java·设计模式·装饰器模式
geovindu2 天前
python: Reactor Pattern
开发语言·python·设计模式·反应器模式
workflower2 天前
基于机器学习的设备故障预测分析方法
人工智能·算法·机器学习·设计模式·语言模型·自然语言处理·重构
迷茫运维路2 天前
Golang架构目录设计与设计模式教程
设计模式·golang