Глоссарий

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);
  }
}

Классическое применение