TypeScript中的Singleton模式实现与实例

98 阅读2分钟

在这篇博文中,我们将通过实例来学习TypeScript中的Singleton模式。

Singleton设计模式

Singleton是应用程序开发中简单而常用的设计模式之一。

它是一种创造性的设计模式,可以在应用程序中创建一个单一的实例或对象。只有在应用程序中创建一个类的实例。

每种编程语言都提供了这种模式的实现。
我们也可以在Typescript中实现singleton模式。这是一个简单的创建模式。

单子模式的实现

  • 构造函数的私有修改器,这样这个类就不能被其他类所创建。
  • 一个私有静态变量,总是返回同一个类的实例。
  • 一个公共静态函数,返回该类的实例

单子模式类的例子

以下是单子类的步骤

  • 创建实例静态成员变量,可以使用类而不是对象实例进行访问。
  • 还在静态成员中添加了private关键字
  • 在构造函数中添加了private修改器
  • 外部类不能用new操作符创建。
  • 声明静态方法或函数,它检查实例是否为空或未定义,它创建一个实例并返回,如果已经存在,就返回实例。

下面是一个类

  
class SingletonClass {  
    private static instance: SingletonClass;  
    private constructor() {  
    }  
    public static getInstance() {  
        if (!SingletonClass.instance) {  
            SingletonClass.instance = new SingletonClass();  
        }  
        return SingletonClass.instance;  
    }  
}  

我们已经创建了一个单子类,现在我们准备测试单子类。

下面是一个测试上述类的代码

let instance1 = new SingletonClass() // This gives compilation error  
  
let instance2 = SingletonClass.getInstance()   
let instance3 = SingletonClass.getInstance()   
  
console.log(instance2==instance3) // true 

如果你使用new操作符创建一个对象,会出现编译错误--'SingletonClass'类的构造函数是私有的,只能在类声明中访问

总结

在这个简短的教程中,你学到了创建单子类和用实例测试单子类。

使用案例和优势

  • 为一个类的对象创建提供全局访问,它总是有一个实例被维护。
  • 在应用程序中,如果你正在实现应用程序的缓存,你将永远只维护一个缓存对象的单一实例。
  • 当你在处理应用程序中的全局配置时,保持一个实例。