Глосарій

Adapter Pattern

Adapter — патерн-обгортка, що перетворює інтерфейс одного класу на інтерфейс, очікуваний клієнтом. Дозволяє двом несумісним інтерфейсам співпрацювати без зміни їх коду.

Приклад

// Бібліотека логування зі своїм інтерфейсом
class ThirdPartyLogger {
  public function writeLog(string $level, string $msg): void {}
}

// Наш інтерфейс
interface Logger {
  public function log(string $msg): void;
}

// Adapter — мостик між ними
class LoggerAdapter implements Logger {
  public function __construct(private ThirdPartyLogger $lib) {}
  public function log(string $msg): void {
    $this->lib->writeLog('info', $msg);
  }
}

Класичне застосування