Міст — це структурний патерн, який розділяє бізнес-логіку або великий клас на кілька окремих ієрархій, які можна розвивати далі окремо одну від одної.
Одна з цих ієрархій (абстракція) отримає посилання на об’єкти іншої ієрархії (реалізація) і буде делегувати їм основну роботу. Завдяки тому, що всі реалізації будуть дотримуватись спільного інтерфейсу, їх можна буде взаємозамінювати всередині абстракції.
Уявімо, що у вас є два типи комп’ютерів: Mac і Windows, а також два типи принтерів: Epson і HP. Комп’ютери та принтери мусять працювати між собою у будь-яких комбінаціях. Клієнт не хоче думати про особливості підключення принтерів до комп’ютерів.
Ми не хочемо, щоб при введенні в цю систему нових принтерів кількість коду збільшувалася по експоненті. Замість створення чотирьох структур для 2 × 2 комбінацій, ми створимо дві ієрархії:
Ієрархія абстракції: сюди будуть входити наші комп’ютери
Ієрархія реалізації: сюди будуть входити наші принтери
Ці дві ієрархії спілкуються між собою за допомогою Моста, в якому Абстракція (комп’ютер) містить посилання на Реалізацію (принтер). І абстракцію, і реалізацію можна розробляти окремо, не впливаючи одне на одного.