Шаблон проектирования Bridge (Мост).

Паттерн Bridge решает проблему отделения абстракции от ее реализации, чтобы они могли изменяться независимо друг от друга. Шаблон Мост относится к группе структурных паттернов в книге от банды четырех.

Реализация

Есть 3 основных составляющих в этом шаблоне проектирования:

  • Абстракция — это класс или интерфейс, который будет потом реализован. 
  • Реализация — это интерфейс с конкретными методами, это контракт который через композицию содержится в абстракции
  • Конкретны реализаторы — это конкретные классы, реализующие интерфейс реализации.
Паттерн Мост с точки зрения отношения классов.

Особенности реализации паттерна Bridge.

  • Абстракция знает о контракте интерфейса Реализации, знает методы которыми Абстракция может пользоваться.
  • Абстракция с помощь композиции содержит Конкретный Реализатор. Таких реализаторов может быть сколь угодно много, и для добавления новой логики достаточно создать новый Конкретный Реализатор и передать его в Абстракцию.
  • Здесь нам помогает полиморфизм, и заодно соблюдаем принцип Open/Closed из SOLID.

Таким образом имеем, что цель паттерна мост состоит в том, чтобы абстракции и реализации были очень слабо связаны. Но так можно сказать про многие паттерны, и какая тогда разница? Все дело в нюансах, а конкретно какие намерения достигаются тем или иным шаблоном проектирования. Тогда все станет понятнее, так например назначение шаблона адаптер — действовать как посредник между двумя несовместимыми классами. Целью шаблона стратегия является инкапсуляция различных алгоритмов и гибко их подменять в зависимости от контекста. 

У кого есть хорошие примеры из ваших приложений для шаблона мост,- оставляйте в комментариях )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *