Шаблоны проектирования (часть 5)
🖥 Паттерн «Адаптер» — популярный структурный шаблон проектирования (structural pattern), который позволяет объектам с несовместимыми интерфейсами сотрудничать. Он перехватывает вызовы одного объекта и преобразовывает их в интерфейс, распознаваемый вторым.
☺️ Представьте, что у вас есть целый проект с конкретным интерфейсом и структурой. Вы решили его расширить и нашли подходящую библиотеку, однако ее интерфейс несовместим с вашим. Менять свой код или код библиотеки не очень рационально, поэтому на помощью приходит «Адаптер».
🌐 Вы можете создать класс, который будет наследовать интерфейс, совместимый с вашим кодом. А вызовы в этом классе передавать библиотеке в понятной ей структуре. Паттерн соблюдает принципы SRP и OCP и возможно создать двусторонний адаптер. Однако иногда проще и быстрее изменить уже существующий код, чем добавлять новые интерфейсы.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram