设计模式之单例模式

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

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

结果为

相关推荐
为java加瓦2 小时前
单例模式:原理、实现与演进
单例模式
rongqing20193 小时前
Google 智能体设计模式:人机协同(HITL)
设计模式
王嘉俊9254 小时前
设计模式--享元模式:优化内存使用的轻量级设计
java·设计模式·享元模式
bkspiderx5 小时前
C++设计模式之行为型模式:中介者模式(Mediator)
c++·设计模式·中介者模式
Meteors.8 小时前
23种设计模式——责任链模式(Chain of Responsibility Pattern)
设计模式·责任链模式
o0向阳而生0o9 小时前
107、23种设计模式之观察者模式(16/23)
观察者模式·设计模式
磨十三10 小时前
C++ 单例模式(Singleton)详解
c++·单例模式
默默coding的程序猿10 小时前
1.单例模式有哪几种常见的实现方式?
java·开发语言·spring boot·spring·单例模式·设计模式·idea
bkspiderx11 小时前
C++设计模式之行为型模式:迭代器模式(Iterator)
c++·设计模式·迭代器模式
简小瑞13 小时前
VSCode源码解密:一行代码解决内存泄漏难题
前端·设计模式·visual studio code