首页 > 其他分享 >单例模式

单例模式

时间:2024-03-19 23:55:07浏览次数:26  
标签:Axios 单例 url 模式 instance timeout null

TS实现单例模式

class Axios {
  // 由于 instance 是一个静态属性,它会在整个应用程序的生命周期内保持存在,除非显式地将其设置为 null 或通过其他方式清除它的引用。
  private static instance: Axios | null = null
  url: string
  timeout: number
  // 通过把构造函数设为私有,防止外部通过 new 实例化
  private constructor(url: string, timeout: number) {
    this.timeout = timeout
    this.url = url
  }
  static create(url: string, timeout: number): Axios {
    if (Axios.instance === null) {
      Axios.instance = new Axios(url, timeout)
    }
    return Axios.instance
  }
}
// 要求是:所有实例均为一个
let axios1 = Axios.create('www.heima.com', 3000)
let axios2 = Axios.create('www.itcast.cn', 5000)

console.log(axios1, axios2);
console.log(axios2 === axios1) // true 


// new Axios // 类“Axios”的构造函数是私有的,仅可在类声明中访问。

js实现单例模式

const singleton = (function() {
  // 私有变量和方法
  let instance;

  function init() {
    // 单例初始化逻辑
    // ...
    return {
      // 对外公开的方法和属性
      // ...
    };
  }

  return {
    getInstance: function() {
      if (!instance) {
        instance = init();
      }
      return instance;
    }
  };
})();

// 使用单例
const instance1 = singleton.getInstance();
const instance2 = singleton.getInstance();

console.log(instance1 === instance2); // true,同一个实例

标签:Axios,单例,url,模式,instance,timeout,null
From: https://www.cnblogs.com/byj666/p/18084257

相关文章

  • 组合设计模式Java代码快速开始
    组合模式介绍使用组合模式可以让用户可以使用统一的方式处理整个树形结构的个别对象和组合对象,从而简化客户端的操作。并且扩展性好当需要处理的对象是树形结构时可以考虑使用组合模式。节点和叶子节点存在很大差异的情况下不建议使用组合模式。代码举例不使用组合模式举例......
  • 代理模式(Proxy Pattern)__浅谈与装饰器模式的区别
    代理模式(英语:ProxyPattern)为其他对象提供一种代理以控制对这个对象的访问。 代理模式和装饰器模式的共同点:  不改变原有组件的情况下增强其功能 代理模式和装饰器模式的差异:  代理模式可以实现延迟加载,即在需要时才真正创建原有组件,而不是在创建代理时就立即创建原有......
  • Java类和接口的工厂模式
    作者平时学习的小总结,希望可以帮到你更好了解。本章节介绍Java类和接口的工厂模式,帮助你对工厂模式有一个新的了解,这三种工厂模式的升级基于前一代的基础上进行升级的,所以一步一步看下去效果会更好。1.简单工厂模式简单工厂模式就是我们把一些类(比如说某一产品汽车,有很多品种看......
  • Selenium Headless模式:无头浏览器的使用与优势
    简介在现代Web开发和测试中,自动化工具的应用变得越来越重要。Selenium作为一种流行的自动化测试工具,为开发者提供了强大的功能来模拟用户行为和进行网页测试。其中,Selenium的Headless模式,即无头浏览器,为开发者提供了一种更高效、更隐秘的测试方式。本文将探讨SeleniumHeadless......
  • 探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信
    ​......
  • 设计模式学习纪要(三)
    (五)代理模式(结构型模式)代理模式定义代理模式就是为一个对象(被代理对象)提供一个代理对象,并且通过代理对象控制对原来被代理对象的访问。可以简单理解为通过代理对象访问目标对象。这样做最大的好处就是可以在目标对象实现的基础上,增强额外的功能,起到扩展目标对象的效果。代......
  • 探索发布-订阅模式的深度奥秘-实现高效、解耦的系统通信
    ​......
  • UI自动化测试中公认最佳的设计模式-POM
    p>什么是POM?POM是PageObjectModule(页面对象模式)的缩写,其目的是为了WebUI测试创建对象库。在这种模式下,应用涉及的每一个页面应该定义为一个单独的类。类中应该包含此页面上的页面元素对象和处理这些元素对象所需要的方法等。将流程所关联的页面作为对象,将对象串联起来,形成一个个......
  • 设计模式(行为型设计模式——职责链模式)
    设计模式(行为型设计模式——职责链模式)职责链模式基本定义为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。在这里客户端和处理者都没有......
  • NodeJS 中的设计模式
    Node.js是一个流行的JavaScript运行时,允许开发者使用事件驱动、非阻塞I/O模型构建可扩展的网络应用程序。和任何复杂的框架一样,Node.js应用程序可以从使用成熟的设计模式中受益,以促进代码重用、可维护性和健壮性。本文将概述一些对Node.js开发非常有用的设计模式。......