SingleTon - 单例模式

83 阅读1分钟

概念描述

  • 单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例

代码实现

  • 实现原理是多次 new SingleTon 的时候,判断 SingleTon 实例是否存在(一般利用 SingleTon 的类静态属性表示)。
  • 类实例存在,直接返回实例。
  • 类实例不存在,就 new 一个新实例,保存在类静态变量上,并返回该新实例。
/**
* @description: 单例模式(SingleTon)
* @author: huen2015
*/

class SingleTon {
    private static instance: SingleTon | null = null
    public name: string = 'SingleTon'
    constructor() { }
    public static getInstance() {
        if (SingleTon.instance == null) {
            SingleTon.instance = new SingleTon()
        }
        return SingleTon.instance
    }
}

const instance1 = SingleTon.getInstance()
const instance2 = SingleTon.getInstance()
console.log('instance1 === instance2', instance1 === instance2); // true

应用场景

  • Vue 中 Vue-Router、Vue-Vuex

    • 实现原理是不让多次 new Vue-Router/Vue-Vuex 实例。
  • 全局模态框

    • 多次 new Model 返回同一实例。
  • ES6 import

参考文档