设计模式之单例模式

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

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

结果为

相关推荐
至此流年莫相忘2 小时前
设计模式:策略模式
设计模式·策略模式
ytadpole4 小时前
揭秘设计模式:命令模式-告别混乱,打造优雅可扩展的代码
java·设计模式
在下雨5997 小时前
项目讲解1
开发语言·数据结构·c++·算法·单例模式
努力也学不会java7 小时前
【设计模式】 外观模式
设计模式·外观模式
deepwater_zone8 小时前
设计模式(策略,观察者,单例,工厂方法)
设计模式
TNTLWT8 小时前
单例模式(C++)
javascript·c++·单例模式
宁静致远202111 小时前
【C++设计模式】第三篇:观察者模式(别名:发布-订阅模式、模型-视图模式、源-监听器模式)
c++·观察者模式·设计模式
TT哇13 小时前
【多线程案例】:单例模式
java·单例模式·面试
User_芊芊君子14 小时前
【Java】设计模式——单例、工厂、代理模式
java·设计模式·代理模式
YA33317 小时前
java设计模式二、工厂
java·开发语言·设计模式