单例模式

  这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这种类型的设计模式属于创建型模式。

  这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  注意:

    • 1、单例类只能有一个实例。
    • 2、单例类必须自己创建自己的唯一实例。
    • 3、单例类必须给所有其他对象提供这一实例。

 

TS中代码实现:

  

  

 

以下借鉴了:https://blog.csdn.net/from_the_star/article/details/86486035

好处

  1. 减少内存开支
  2. 减少性能开支,如配置需要频繁读取的信息
  3. 避免对资源的多重占用,造成不必要的麻烦
  4. 优化和共享资源访问,比如组件状态管理,我会创建一个单例来存状态信息(比如说左侧list选中那个),让子组件间通信变简单。

应用场景

  一个类出现多个对象会有“不良反应”的时候:

  需要生成唯一序列号的环境
  在整个项目中需要一个共享访问点或共享数据,之前我写后端代码的时候,做一个大转盘,没使用单例模式,当只剩下几个奖品时,有很多人在抽奖抽出来的奖品远大于库存,是很尴尬,这里的库存就是一个共享数据。
  创建一个资源需要消耗的资源过多,比如用户信息,不可能每次都去取吧
  需要定义大量静态变量和静态方法(如工具类),JS中单例模式经常作为命名空间来使用

posted on 2020-04-19 18:13  DMC-尼禄  阅读(127)  评论(0编辑  收藏  举报