Паттерны
Adapter Pattern
Адаптер — это структурный паттерн, который позволяет подружить несовместимые объекты. Адаптер выступает прослойкой между двумя объектами, превращая вызовы одного в вызовы понятные другому.
Суть паттерна:
Есть класс или объект с определённым интерфейсом, который неудобен или несовместим с остальной системой. Создаётся адаптер — новый класс, реализующий нужный клиенту интерфейс. Адаптер содержит ссылку на оригинальный объект и внутри методов преобразует вызовы клиента в вызовы методов оригинального объекта.
Пример реализации:
class OldSystem:
def old_method(self):
print("Старый метод")
class Adapter:
def __init__(self, old_system):
self.old_system = old_system
def new_method(self):
print("Адаптер вызывает:")
self.old_system.old_method()
# Использование
old = OldSystem()
adapter = Adapter(old)
adapter.new_method()
Вывод:
Адаптер вызывает:
Старый метод
Использование:
- Когда нужно использовать сторонний или legacy класс с несовместимым интерфейсом.
- Для объединения нескольких интерфейсов в один.
- Для адаптации классов, которые нельзя модифицировать.
Паттерн помогает создавать гибкие и расширяемые системы, позволяя переиспользовать существующий код без изменения.
Что меняет паттерн адаптер?
Паттерн Адаптер (Adapter) меняет интерфейс одного класса или объекта так, чтобы он мог работать с другим, несовместимым интерфейсом. Он «подгоняет» один класс под API, который ожидают другие компоненты.
Меняет ли адаптер поведение?
Нет, адаптер не меняет поведение объекта. Он только изменяет интерфейс, через который к этому поведению обращаются. Адаптер просто перенаправляет или преобразует вызовы Пример, как переходник для розетки — сам по себе он ничего не делает, только позволяет подключить устройство.