码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2020-06-18 12:47:12      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:new   demo   ati   code   public   es6   func   防止   vat   

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

作用:

(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 // 指向的是唯一实例化的对象

 

单例模式

标签:new   demo   ati   code   public   es6   func   防止   vat   

原文地址:https://www.cnblogs.com/studyWeb/p/13156822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!