Паттерн Адаптер (Adapter) в Python

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

class Doge:

    def __init__(self, name):
        self.name = name

    def bark(self):
        print("{}: Гав Гав".format(self.name))


class Kitty:

    def __init__(self, name):
        self.name = name

    def meow(self):
        print("{}: Мяу Мяу".format(self.name))


class KittyAdaapter(Doge):

    def __init__(self, name):
        super(KittyAdaapter, self).__init__(name)
        self._kitty = Kitty(name)

    def bark(self):
        return self._kitty.meow()


dog = Doge('Steve')
dog.bark()


adapter = KittyAdaapter('Steve')
adapter.bark()

Получим

Steve: Гав Гав
Steve: Мяу Мяу

 

Ссылка на основную публикацию