Как реализовать паттерн Adapter в Python?

Middle
199 просмотров
AFK Offer AI

Adapter — преобразует интерфейс одного класса в другой. Нужен, когда есть несовместимые интерфейсы. Class Adapter — множественное наследование. Object Adapter — композиция: хранишь ссылку на адаптируемый объект. В Python чаще object adapter: class PaymentAdapter: def __init__(self, old_payment): self._payment = old_payment; def pay(self, amount): self._payment.make_payment(amount). Также можно через __getattr__ для делегирования всех вызовов. Duck typing упрощает — адаптер просто должен иметь нужные методы.

Следующий вопрос

Что такое метаклассы в Python?