登录/注册

ts adapter 快速入门

更多

以下是 TypeScript 中 Adapter 模式的快速入门指南(以 HTTP 请求库为例):


1. Adapter 是什么?

Adapter(适配器)是一种设计模式,用于连接两个不兼容的接口。在 TS 中常用于:


2. 快速实现示例:HTTP 请求适配器

假设需要统一封装 Axios:

步骤 1:安装依赖

npm install axios

步骤 2:定义适配器接口

// HttpAdapter.ts
export interface HttpAdapter {
  get<T>(url: string): Promise<T>;
  post<T>(url: string, data: any): Promise<T>;
}

步骤 3:实现 Axios 适配器

import axios, { AxiosResponse } from "axios";
import { HttpAdapter } from "./HttpAdapter";

export class AxiosAdapter implements HttpAdapter {
  async get<T>(url: string): Promise<T> {
    const response: AxiosResponse<T> = await axios.get(url);
    return response.data;
  }

  async post<T>(url: string, data: any): Promise<T> {
    const response: AxiosResponse<T> = await axios.post(url, data);
    return response.data;
  }
}

步骤 4:在应用中使用适配器

// app.ts
import { HttpAdapter } from "./HttpAdapter";
import { AxiosAdapter } from "./AxiosAdapter";

const http: HttpAdapter = new AxiosAdapter();

// 示例:获取用户数据
interface User {
  id: number;
  name: string;
}

async function fetchUser() {
  const user = await http.get<User>("/api/user/1");
  console.log(user.name); // 类型安全!
}

// 示例:提交数据
await http.post("/api/submit", { key: "value" });

3. 适配器模式的核心优势

  1. 解耦:业务代码不直接依赖 Axios,更换库只需改适配器(如换成 Fetch API)。
  2. 统一接口:所有 HTTP 调用通过 HttpAdapter 接口访问。
  3. 类型安全:利用 TS 泛型确保输入/输出类型正确。

4. 进阶:替换底层实现(如改用 Fetch API)

export class FetchAdapter implements HttpAdapter {
  async get<T>(url: string): Promise<T> {
    const response = await fetch(url);
    return response.json() as Promise<T>;
  }

  async post<T>(url: string, data: any): Promise<T> {
    const response = await fetch(url, {
      method: "POST",
      body: JSON.stringify(data),
      headers: { "Content-Type": "application/json" },
    });
    return response.json() as Promise<T>;
  }
}

切换适配器只需一行

// 只需修改此处即可切换 HTTP 库
const http: HttpAdapter = new FetchAdapter(); // 替代 AxiosAdapter

5. 使用场景扩展


总结

  1. 定义统一接口(如 HttpAdapter
  2. 实现具体适配器(如 AxiosAdapter/FetchAdapter
  3. 在业务代码中通过接口调用
  4. 灵活切换底层实现,不污染业务逻辑

关键原则:业务代码只依赖抽象(接口),不依赖具体实现。

通过 Adapter 模式,你可以轻松管理第三方库的依赖,提升代码的可维护性和可测试性。

CW32快速开发入门

CW32快速开发入门

2024-04-24 18:56:19

不能同时使用lpuart_adapter和uart_adapter吗?

与 RS485 收发器一起使用。 过去,我已经编写了一个简单的代码来使用 uart_adapter 通过带有缓冲区机制的 UART 发送和获取字节。然后在 MCUExpresso 上,在 SDK 组件上,我添加

2023-03-24 07:36:40

OpenHarmony 应用开发快速入门

Ability与Page的关系如下图所示: 快速入门提供了一个含有两个页面的Page Ability实例。更多Ability的开发内容及指导,请参见Ability开发。 工具准备 安装最新版DevEco

2022-05-06 16:03:12

图解电子技术快速入门PDF

图解电子技术快速入门PDF

资料下载 ah此生不换 2021-09-26 14:09:58

新华DCS软件OnXDC软件快速入门手册

新华DCS软件OnXDC软件快速入门手册(学习电源技术)-新华DCS软件OnXDC软件快速

资料下载 吴湛 2021-09-15 12:34:36

PSCOPE快速入门指南

PSCOPE快速入门指南

资料下载 哈哈哈 2021-05-23 20:22:52

西门子SIMATIC-HMI-面板选型快速入门

西门子SIMATIC-HMI-面板选型快速入门资料下载。

资料下载 姚小熊27 2021-04-22 14:43:13

IAR EWARM快速入门的学习教程免费下载

IAR EWARM快速入门的学习教程免费下载包括了:第一章 EWARM集成开发环境及配套仿真器,第二章在 EWARM中生成一个新项目,第三章编译和连接应用程序,第四章用cSPY调试应用程序,第五章 EWARM Fla

资料下载 佚名 2021-03-25 10:24:19

HarmonyOS快速入门资料分享

HarmonyOS智能设备开发极速入门手册  本文主要详细讲HarmonyOS智能设备开发极速入门,主要从基础流程工作记录IDE安装流程这两个部分来介绍。HarmonyOS ArkUI

2022-03-11 17:16:27

adapter模式是如何去定义的

adapter模式定义adapter 将一个类的接口转换成客户希望的另外一个接口。使用场景,两个类所做的事情相同或者相似,但是具有不同的接口时要使用它。target这是客户所期望的接口,目标可以

2022-01-03 06:54:53

如何快速入门STM32?

如何快速入门STM32?

2021-11-05 06:04:02

如何快速入门Arduino语言?

如何快速入门Arduino语言?

2021-10-13 06:40:44

如何快速入门单片机

好多人学习单片机始终不能入门,那怎么才能快速的入门呢?

2020-09-22 17:33:52

【易迪赛TS80P智能烙铁免费试用】【易迪赛TS80P智能烙铁免费试用】在手机维修中的实际应用

文档,对TS80P快速入门②通过学习TS80P的软件和配置方法,了解设备

2020-06-29 15:01:56

如何快速入门Linux?

入门必备零基础如何快速入门Linux?

2020-06-14 09:19:42
7天热门专题 换一换
相关标签