Мост
Bridge
Last updated
Was this helpful?
Bridge
Last updated
Was this helpful?
Мост (Bridge) - структурный паттерн, предназначенный для отделения абстракции от ее реализации так, чтобы была возможность изменять их независимо друг от друга.
возможность выбирать реализацию во время выполнения программы
Мост позволяет избежать постоянной привязки абстракции к реализации.
комбинирование разных абстракций и реализаций и изменение их независимо
избежание перекомпиляции клиентского кода при изменениях в реализации абстракции
полное сокрытие от клиентов реализации абстракции
разделение одной реализации между несколькими объектами и сокрытие деталей разделения от клиента
декомпозиция иерархии: позволяет управлять ростом и сложностью иерархии
избавление от дублирования кода
позволяет иерархии не разрастаться
сокрытие деталей реализации от клиентов
возможность изменять реализацию во время выполнения программы
увеличение времени выполнения
тяжелый процесс реализации паттерна: введение дополнительного уровня абстракции между "реализацией" и "абстракцией"
Из-за дополнительных затрат на разработку паттерна и усложнения структуры кода появляется необходимость закладывать реализацию моста в систему на этапе проектирования
связь между абстрактными понятиями не всегда может быть выделена
: паттерн абстрактная фабрика может создать и сконфигурировать мост
: для обеспечения совместной работы не связанных между собой классов прежде всего предназначен паттерн адаптер. Обычно он применяется в уже готовых системах. Мост же участвует в проекте с самого начала и призван поддерживать возможность независимого изменения абстракций и их реализаций.
: мост и компоновщик могут совместно использоваться для создания сложных структур, состоящих из связанных объектов.
: мост может быть комбинирован с декоратором для добавления дополнительной функциональности к объектам абстракции и реализации.
: мост может быть реализован с использованием стратегии. В этом случае, абстракция содержит ссылку на объект стратегии, который предоставляет конкретную реализацию. Стратегия может быть легко заменена другой, не нарушая интерфейса абстракции.