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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
ЭР-Телеком Пермь
от 70 000 до 120 000 ₽
СофтИнвент Пенза
от 90 000 до 150 000 ₽
Telecom Club Санкт-Петербург
от 150 000 ₽
02 июн. 2020, в 14:54
12000 руб./за проект
02 июн. 2020, в 14:43
20000 руб./за проект
02 июн. 2020, в 14:09
15000 руб./за проект