Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Яка основна мета патерна «Адаптер»?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Adapter (Адаптер)** - патерн, основна мета якого полягає в тому, щоб зробити несумісні інтерфейси сумісними, тобто дозволити об'єктам з різними інтерфейсами працювати разом, не змінюючи їхній код. **Ключове:** адаптер додається до системи, а не модифікує наявний код, підтримуючи принцип відкритості/закритості (OCP).Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняОсновна мета патерна **Adapter (Адаптер)** - зробити **несумісні інтерфейси сумісними**, тобто **дозволити об'єктам з різними інтерфейсами працювати разом**, не змінюючи їхній код. --- ### 1. **Суть ідеї** Іноді потрібно використати сторонній або застарілий клас, інтерфейс якого **не збігається** з тим, що очікує решта системи. Адаптер виступає як **прошарок (обгортка)**, яка «перекладає» виклики одного інтерфейсу в інший, забезпечуючи сумісність. --- ### 2. **Коли використовується** - Коли потрібно інтегрувати **старий код** з новою системою. - Коли є **бібліотека або зовнішній API**, інтерфейс якого не можна змінити. - Коли різні компоненти системи повинні працювати **через єдиний інтерфейс**, але реалізовані по-різному. --- ### 3. **Приклад (Java)** Припустимо, у нас є сучасний інтерфейс: ```java interface MediaPlayer { void play(String file); } ``` і старий клас: ```java class OldPlayer { void startPlayback(String filePath) { System.out.println("Playing " + filePath); } } ``` Адаптер «перекладає» інтерфейс: ```java class PlayerAdapter implements MediaPlayer { private OldPlayer oldPlayer = new OldPlayer(); public void play(String file) { oldPlayer.startPlayback(file); } } ``` Тепер старий `OldPlayer` можна використовувати в новій системі через інтерфейс `MediaPlayer`. --- ### 4. **Переваги** - Дозволяє **повторно використовувати готовий код**, не змінюючи його. - Забезпечує **гнучкість і сумісність** між різними системами. - Підтримує принцип **відкритості/закритості (OCP)**: адаптер додається, а не модифікує наявний код. --- ### 5. **Висновок** Adapter вирішує задачу **інтеграції несумісних інтерфейсів**, перетворюючи їх на єдиний формат взаємодії, не порушуючи інкапсуляцію і не вимагаючи змін у вихідних класах.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.