Andriy Shyrokoryadov

.Net developer, data scientist

Адаптер. Шаблоны проектирования - видео №2. №38.

Текст к видео "#38 Адаптер" на канале YouTube

Название шаблона проектирования «Адаптер» отлично описывает сущность данного шаблона. В реальной жизни адаптер мы бы назвали переходником или перемычкой. Существуют различные виды переходников. Первый пример, который приходит в голову, это переходника кабеля USB: с обычного типа USB мы можем при помощи переходника получить мини или микро тип USB.

Предположим, что у Вас есть кабель USB со штекером обычного типа, а разъём, куда данный штекер надо воткнуть является разъёмом мини USB. Вроде бы назначение и штекера, и разъёма одинаковое – контакт и передача данных. Но они друг другу не подходят. Вам нужен переходник. Такие ситуации часто встречаются в программировании, особенно тогда, когда определенный код уже написан и взносить изменения довольно затратно. Ваш код был готов использовать интерфейс типа А, а другой отдел вашей компании предоставил вам имплементацию интерфейса типа Б. Вроде бы интерфейсы типов А и Б выполняют ту же функцию, только сигнатуры и названия методов чуть отличаются. В любом случае оба эти интерфейса на взаимозаменяемые и переписывать ваш код под использование интерфейса типа Б нет смысла. Необходимо создать переходник между интерфейсами А и Б. Здесь приходит к нам на помощь шаблон проектирования «Адаптер».

Адаптер позволяет использовать интерфейс Б как будто он является интерфейсом А. В этом случае наш код получает некоторый класс-адаптер, который имлементирует интерфейс А, но на самом деле, «под капотом», в классе адаптера мы вызываем методы интерфейса Б. Звучит запутано? Возможно. Я думаю мне будет легче объяснить на практическом примере.

Пример кода из видео на GitHub

Для открытия файла проекта необходимо Visual Studio 2019.