Back to questions
Andersen
Junior — Middle
104
Как объяснить концепцию паттерна Адаптер в контексте проектирования программных систем?
Companies where asked
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
}
Таким образом, паттерн Адаптер помогает интегрировать несовместимые компоненты, сохраняя чистоту архитектуры.