【TypeScript】实现单例模式

【TypeScript】实现单例模式

前言

单例模式 指一个类有且仅有一个实例,并提供一个访问它的全局访问点。

实现

定义私有构造函数,即 private constructor,禁止使用 new 关键字生成实例。
在这里插入图片描述
Constructor of class 'Dep' is private and only accessible within the class declaration.

// app.ts
class Dep {
  private static instance: Dep;

  private constructor(id: string) {}

  static getInstance() {
    // 静态方法中可以使用 this.静态属性,或者Dep.静态属性。
    if (this.instance) {
      return this.instance;
    }
    this.instance = new Dep("AAA");
    return this.instance;
  }
}

const dep1 = Dep.getInstance();
const dep2 = Dep.getInstance();
console.log(dep1 === dep2);

app.ts 编译成 es2016 版的 app.js

// app.js
"use strict";
class Dep {
    constructor(id) { }
    static getInstance() {
        // 静态方法中可以使用 this.静态属性,或者Dep.静态属性。
        if (this.instance) {
            return this.instance;
        }
        this.instance = new Dep("AAA");
        return this.instance;
    }
}
const dep1 = Dep.getInstance();
const dep2 = Dep.getInstance();
console.log(dep1 === dep2);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值