Что такое паттерн Адаптер (Adapter)
Python
Middle
Без компании
Что такое паттерн Адаптер (Adapter)
Ответы
Паттерн Адаптер позволяет объектам с несовместимыми интерфейсами работать вместе. Он оборачивает один интерфейс в другой, преобразуя вызовы.
Пример:
```
class OldSystem:
def old_request(self):
return "Old system response"
class Adapter:
def __init__(self, old_system):
self._old_system = old_system
def request(self):
return self._old_system.old_request()
# Клиентский код ожидает метод request()
def client_code(target):
print(target.request())
old = OldSystem()
adapter = Adapter(old)
client_code(adapter) # Работает через адаптер
```
Основные случаи использования:
- Интеграция старого кода с новой системой
- Работа со сторонними библиотеками, интерфейс которых не соответствует ожиданиям
- Предоставление единого интерфейса к разным классам с похожей функциональностью
Преимущества:
- Разделяет и скрывает преобразование интерфейсов
- Позволяет повторно использовать существующий код
Недостатки:
- Увеличивает сложность кода дополнительными классами
- Может быть признаком плохого дизайна, если используется чрезмерно