单例模式

基础概念

单例模式结构

  1. 单例模式:保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。
  2. 适用性:
    • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
    • 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
  3. 参与者: - Singleton - 定义了一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作(即它是一个静态成员方法)。 - 可能负责创建它自己的唯一实例。

demo

基础概念中介绍的是单例模式的原理,而这个 demo 中展示的是使用代理来实现透明单例模式的例子,它们有些许不同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class CreateSingleton {
constructor(name) {
this.name = name;
}
}

var Singleton = (function () {
var instance;
return function (name) {
if (!instance) {
instance = new CreateSingleton(name);
}
return instance;
};
})();

var a = new Singleton('a');
console.log(a.name); // a

var b = new Singleton('b');
console.log(b.name); // a

console.log(a === b); // true


感谢您的阅读,如果发现文章中有错误或漏洞,请批评指正。
邮箱:aadonkeyz@gmail.com

0%