单例模式

Posted studyweb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式相关的知识,希望对你有一定的参考价值。

单例模式: 保证一个类只有一个实例,一般先判断实例是否存在,如果存在直接返回,不存在则先创建再返回,这样就可以保证一个类只有一个实例对象。

作用:

(1)、保证某个类的对象的唯一性;

(2)、模块间通信;

(3)、防止变量污染

 1 function Singleton(name) {
 2        this.name = name;
 3        this.instance = null;
 4   }
 5 Singleton.prototype.getName = function () {
 6         console.log(this.name, 1)
 7  }
 8  Singleton.getInstance = function (name) {
 9     if (!this.instance) {
10           this.instance = new Singleton(name);
11         }
12            return this.instance;
13      }
14   var a = Singleton.getInstance(sven1);
15   var b = Singleton.getInstance(sven2);
16   // 指向的是唯一实例化的对象
17   console.log(a === b, a.getName());

 

es6实现

 1 class Demo1{
 2     private static instance:Demo1;
 3     private constructor(public name:string){}
 4     static getInstance(name:string){
 5         if(!this.instance){
 6             this.instance=new Demo1(name)
 7         }
 8         return this.instance
 9     }
10 }
11 const d1=Demo1.getInstance()
12 const d2=Demo1.getInstance()
13 console.log(d1,d2,d1==d2)
14 //小 小 true 
15 // 指向的是唯一实例化的对象

 

以上是关于单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块