单例模式(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环境或者其他语言,则可能需要考虑线程安全问题。