首页 前端知识 TypeScript系列教程《单例》

TypeScript系列教程《单例》

2024-08-22 23:08:42 前端知识 前端哥 864 959 我要收藏

单例模式是一个编程中使用频率很高的模式,各种语言的写法都差不多,TS的也不例外。

单例模式是为了解决一个应用中的内存只存在一份,不允许多个的需求,类似于主题。下面通过theme 主题切换举例

主题单例编写

首先单例一般基于一个类,屏蔽到类的构造函数,以免通过其他方式生成类实例。

只要确保函数生成途径只有一种且保证实例只有一个即可。

单例代码:

class Theme {
  //一个静态全局实例
  private static instance:Theme
  //不允许访问其他构造函数
  private constructor() {}
  static shared(){
    if (!this.instance) {
      this.instance = new Theme()
    }

    return this.instance
  }
}

到这应该就完成了主要部分

思考

现在有个需求,需要单例有个主题属性,和切换方法的时候,是否还用static

我理解的js 中的static 相当于往类的原型里添加,所以我觉得还是为了少污染类的原型,还是觉得应该加到对象上。

class Theme {
  //一个静态全局实例
  private static instance:Theme
  //不允许访问其他构造函数
  private constructor() {}
  theme:string = 'dark'
  static shared(){
    if (!this.instance) {
      this.instance = new Theme()
    }

    return this.instance
  }

  changeTheme(theme:string){
    this.theme = theme
  }
}
转载请注明出处或者链接地址:https://www.qianduange.cn//article/16538.html
标签
单例模式
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!