Шаблон проектирования Adapter (адаптер)
07-10-2019Время чтения ~ 1 мин.PHP/ООП 6420
Суть паттерна отражает его название — использовать два несовместимых между собой класса через некий общий интерфейс. То есть создаётся класс-оболочка, которая скрыто выполняет нужный класс. По своему поведению, Адаптер очень похож на Фасад. Правда под Фасадом больше понимается именно скрытие реализации за каким-то общим методом, а Адаптер предполагает именно «приведение» классов к одному типу.
Исходный код Адаптера вы можете посмотреть на гитхабе.
Кратко опишу что в нём происходит. Есть два совершенно разных класса. Но при этом, мы хотим привести их к некоему одному типу/поведению в рамках своего проекта. В данном случае это интерфейс AdapterInterface. Дальше делаются классы, реализующие этот интерфейс: AdapterA и AdapterB.
Метод commonMethod()
является обязательным, и в нём мы уже подключаем существующие методы классов ClassA и ClassB. Такой подход позволяет использовать в приложении совершенно разные классы с нужным интерфейсом.
Спасибо!