TypeScript 面试题
目录

请解释如何在 TypeScript 中使用装饰器实现适配器模式?

· 约 3 分钟读完 · 第 241 / 256 章

推荐答案

在 TypeScript 中,装饰器可以用来实现适配器模式。适配器模式是一种结构型设计模式,它允许不兼容的接口之间进行协作。通过使用装饰器,我们可以在不修改原有类的情况下,动态地为对象添加新的行为或功能。

以下是一个使用装饰器实现适配器模式的示例:

本题详细解读

1. 目标接口

Target 接口定义了客户端期望的接口,即 request 方法。

2. 需要适配的类

Adaptee 类包含了一个 specificRequest 方法,这个方法与客户端期望的接口不兼容。

3. 适配器装饰器

AdapterDecorator 是一个装饰器函数,它接收一个类作为参数,并返回一个新的类。这个新的类继承了原始类,并实现了 Target 接口。在 request 方法中,装饰器调用了 Adaptee 类的 specificRequest 方法,从而实现了接口的适配。

4. 使用装饰器

ConcreteTarget 类被 @AdapterDecorator 装饰器修饰,这意味着它的 request 方法将被适配器装饰器中的实现所覆盖。

5. 客户端代码

客户端代码创建了一个 ConcreteTarget 的实例,并调用了 request 方法。由于装饰器的作用,实际执行的是适配器装饰器中的 request 方法,从而实现了适配器模式。

通过这种方式,我们可以在不修改原有类的情况下,使用装饰器动态地为对象添加适配器功能。