Паттерны проектирования: Мост (Bridge) | OTUS

Паттерны проектирования: Мост (Bridge)

Arch_headline_970x70-1801-410a68.png

Мост — структурный шаблон, который применяется в проектировании ПО для разделения абстракции и реализации таким образом, чтобы они могли меняться независимо друг от друга. Этот шаблон использует инкапсуляцию и агрегирование, а также, если требуется разделение ответственности между классами, может использовать наследование.

Давайте представим, что у нас есть веб-сайт с разными страницами, а нам надо разрешить пользователям менять тему этих страниц. Что делать? Вряд ли будет разумно создавать множественные копии для каждой веб-страницы и для каждой темы. Вопрос можно решить благодаря шаблону Мост.

33b7aea0_f515_11e6_983f_98823c9845ee_1-1801-791ff3.png

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

Лучше всего, конечно, посмотреть, как это будет выглядеть в коде вышеописанного примера с веб-страницами. Итак, у нас существует иерархия WebPage:

2-1801-9c5e3b.png

А также отдельная иерархия Theme:

3-1801-53240d.png

Теперь смотрим применение в коде:

4-1801-a7c299.png

Также вам может быть интересен пример реализации шаблона «Мост» на языке программирования Java: https://github.com/iluwatar/java-design-patterns/tree/master/bridge.

Arch_headline_970x70-1801-410a68.png

По материалам статьи «Design Patterns for Humans» — https://github.com/kamranahmedse/design-patterns-for-humans.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто