ООП для чайников. Паттерны проектирования. Мост (bridge)
Следующий патерн, также относится к типу структурных, и называется — мост.
Смысл этого паттерна в том чтобы отделить абстракцию от реализации. В каком-то смысле он очень похож на адаптер, с той разницей что адаптер, «адаптирует» интерфейсы классов друг к другу, а мост, разделяет их, для того что бы сделать возможным изменение интерфейсов независимо от реализации.
Вот как выглядит он выглядит на диаграмме:
Этот патерн следует применять, например, когда нужно отвязать интерфейс от реализации во время выполнения. Мост повышает расширяемость, позволяя независимо расширять абстракции и реализации.
Пример реализации паттарна Мост на Python:
class SortAbstraction: def sortImpl(self, sortImpl): self._sortImpl = sortImpl def sort(self, data): self._sortImpl.sort(data) return data class SortImpl: def sort(self, data): pass class FastSortimpl(SortImpl): def sort(self, data): return data.sort() class SlowSortImpl(SortImpl): def sort(self, data): return data.sort() # медленная сортировка class FastSortImpl(SortImpl): def sort(self, data): return data.sort() # якобы быстрая сортировка if __name__ == '__main__': abstraction = SortAbstraction() abstraction.sortImpl(SlowSortImpl()) print(abstraction.sort([2,1,3])) abstraction.sortImpl(FastSortImpl()) print(abstraction.sort([2,1,3])) ------------------------- [1, 2, 3] [1, 2, 3]
О статье
Вы сейчас читаете статью «ООП для чайников. Паттерны проектирования. Мост (bridge)»
- Написанную:
- 25.03.2010
- Категории:
- oop, programming

Нет комментариев
Перейти к форме добавления комментария | comments rss[?] | trackback uri [?]