· Last updated on

[Structural] Adapter

typescriptdesign-pattern

Problems

Adapter pattern

Steps:

Example:

  1. Old layer
class OldSystem {
  oldRequest() {
    return "Old system request";
  }
}
  1. New layer
interface Target {
  request(): string;
}

class SystemAdapter implements Target {
  constructor(private oldSystem: OldSystem) {}
  request(): string {
    return this.oldSystem.oldRequest();
  }
}
  1. Implementation of the new layer
const oldSystem = new OldSystem();
console.log(oldSystem.oldRequest()); // Old system request

const newSystem = new SystemAdapter(oldSystem);
console.log(newSystem.request()); // Old system request

Conclusions