设计模式-单例模式

es5实现方式
var Singleton = function(name) {
 this.name = name;
 //一个标记,用来判断是否已将创建了该类的实例
 this.instance = null;
}
// 提供了一个静态方法,用户可以直接在类上调用
Singleton.getInstance = function(name) {
 // 没有实例化的时候创建一个该类的实例
 if(!this.instance) {
  this.instance = new Singleton(name);
 }
 // 已经实例化了,返回第一次实例化对象的引用
 return this.instance;
}
//用户可以通过一个广为人知的接口,对该实例进行访问。
//我们尝试对该对象进行两次实例化,观察两次实例化结果是否指向同一个对象。
var a = Singleton.getInstance('sven1');
var b = Singleton.getInstance('sven2');
// 指向的是唯一实例化的对象
console.log(a === b);
//返回结果是:true。说明a、b之间是引用关系。
es6实现方式
class Singleton {
 constructor(name) {
    this.name = name;
    this.instance = null;
 }
 // 构造一个广为人知的接口,供用户对该类进行实例化
 static getInstance(name) {
    if(!this.instance) {
       this.instance = new Singleton(name);
    }
    return this.instance;
 }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式(Singleton Pattern)是众多设计模式中较为简单的一个,同时它也是面试时经常被提及的问题,如...
    廖少少阅读 3,690评论 0 1
  • 设计模式-单例模式 单例模式在网上已经是被写烂的一种设计模式了,笔者也看了不少的有关单例模式的文章,但是在实际生产...
    醒着的码者阅读 4,028评论 1 2
  • 1. 单例模式 确保某一个对象只有一个实例,而且自行实例化并向整个程序提供这个实例。 优点 由于单例模式在内存中只...
    Mr希灵阅读 11,504评论 0 5
  • 定义 确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 应用场景 确保某个类有且只有一个对象的场景...
    Utte阅读 3,365评论 0 0
  • 设计模式——单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,这种类型...
    Ant_way阅读 2,586评论 0 0