Z

单例模式(Singleton Pattern)

Ensure a class has only one instance, and provide a global point of access to it.

单例模式是23个设计模式中最简单也是最常用的设计模式,通常用于维护一些全局性的资源管理,例如资源读取,文件读写,计数器等,使用单例模式可以非常方便的获取资源,也能降低整体系统的资源占用。

单例模式需要确保某个类只有一个实例,并且自动实例化向外界提供,使用ts可以很简单的实现。

 1class A {
 2    name = "foo";
 3 
 4    private static instance = new A();
 5 
 6    private constructor() {
 7    }
 8 
 9    static get() {
10        return A.instance;
11    }
12}
13 
14const s = A.get();
15console.log(s.name);

使用private关键字来标记constructor,确保该class无法通过new来新建实例。在浏览器环境中,由于是单线程的,单例模式无需考虑线程安全问题,如果是node环境或者其他语言,则可能需要考虑线程安全问题。