设计模式之单例模式

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

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

结果为

相关推荐
dozenyaoyida18 小时前
嵌入式设计模式之策略模式(1)
经验分享·设计模式·策略模式
geovindu19 小时前
go: Simple Factory Pattern
开发语言·后端·设计模式·golang·简单工厂模式
陌上丨21 小时前
优雅终止线程的设计模式
设计模式
张涛酱10745621 小时前
Agent Skills 深入解析:构建可插拔的智能体知识体系
spring·设计模式·ai编程
Kel21 小时前
CrewAI v1.14.2 双模式架构深度剖析:当角色协作遇上事件驱动
人工智能·设计模式·架构
wuxinyan1231 天前
Java面试题48:一文深入了解java设计模式
java·设计模式·面试
CoderMeijun1 天前
C++ 单例模式:饿汉模式与懒汉模式
c++·单例模式·设计模式·饿汉模式·懒汉模式
han_1 天前
JavaScript设计模式(十):模板方法模式实现与应用
前端·javascript·设计模式
楼田莉子1 天前
仿muduo库的高并发服务器——项目基本认识及其相关概念
服务器·数据结构·c++·学习·设计模式
dozenyaoyida1 天前
嵌入式设计模式之策略模式(2)
经验分享·设计模式·策略模式