@tujhan
Начинающий программист

Каким должен быть паттерн Adapter?

Ребят срочно хэлпаните, никак не могу разобраться с этим паттерном (Adapter), везде для примера его пишут не понятно (+ везде, где чекал, нет второй реализации). У кого-нибудь есть наглядный пример паттерна Адаптер, может быть, кто-то пытался для себя реализовать? (на cpp-reference немного не в тему пример, потому что ту пррблему, которую они решают с помощью адаптера, можно решать с использованием наследования)
5d5335f0cc578877171246.png
5d53360f5112b999512384.png
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
serginhold
@serginhold
Адаптер адаптирует интерфейс..

Допустим есть класс для форматирования текста TextFormatter, и есть у него метод format().
По какой-то причине в проекте решили отказаться от этого класса, и использовать другой NewFormatter, типа другой на много лучше и няшный весь такой, но у него нет метода format(), у него есть метод formatText().
И чтобы по всему проекту не искать вызов старого класса, правя кучу кода, можно написать адаптер, подменив им старый класс.
Пусть будет NewTextFormatterAdapter. У которого пишем метод format(), в котором идёт вызов нового класса, что-то вроде:
return this->newFormatter->formatText();
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@laphroaig
Адаптер - это как переходник в с usb на type-c например. У тебя есть клиент который работает с UsbInterface и некоторый класс, который делает все, что нужно клиенту, но имеет TypeCInterface. Т.е. мы не можем просто передать указатель на него клиенту. Можно конечно реализовать в таком классе и UsbInterface, но это не всегда разумно и возможно. Адаптер, в данном случае, будет реализовывать UsbInterface и перенаправлять запросы целевому объекту вызывая соответствующие методы TypeCInterface
Ответ написан
Комментировать
Beshere
@Beshere
Разработчик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы