Skip to content

Паттерны

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, который ожидают другие компоненты.

Меняет ли адаптер поведение?

Нет, адаптер не меняет поведение объекта. Он только изменяет интерфейс, через который к этому поведению обращаются. Адаптер просто перенаправляет или преобразует вызовы Пример, как переходник для розетки — сам по себе он ничего не делает, только позволяет подключить устройство.