Sobes.tech
Back to questions
Junior — Middle
104

Как объяснить концепцию паттерна Адаптер в контексте проектирования программных систем?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

Паттерн Адаптер служит для преобразования интерфейса одного класса в интерфейс, ожидаемый клиентом. Это позволяет работать с несовместимыми интерфейсами без изменения существующего кода.

В контексте Flutter, например, если у вас есть сторонний класс с методом, который не совпадает с вашим интерфейсом, вы можете создать адаптер, который "переведёт" вызовы.

Пример:

// Сторонний класс с другим интерфейсом
class OldApi {
  String fetchData() => 'Данные из старого API';
}

// Наш интерфейс
abstract class DataSource {
  String getData();
}

// Адаптер
class ApiAdapter implements DataSource {
  final OldApi oldApi;

  ApiAdapter(this.oldApi);

  @override
  String getData() {
    return oldApi.fetchData();
  }
}

void main() {
  OldApi oldApi = OldApi();
  DataSource adapter = ApiAdapter(oldApi);
  print(adapter.getData()); // Выведет: Данные из старого API
}

Таким образом, паттерн Адаптер помогает интегрировать несовместимые компоненты, сохраняя чистоту архитектуры.