Недавно попалось изложение интересной беседы по другому поводу, но там, в том числе было и про шаблоны, и в том числе про недостатки. Идея заключалась в том, что языки со статической типизацией и объектность плохо совместимы. Уже само по себе наличие такой проблемы (как создать множество наследников разных классов с похожим поведением) вызвано этими двумя свойствами языка. (Я говорю про видео, где человек прикручивает костыли к Явовской / Сишарповской объектной модели).
Не знаю... в данном контексте хорошего решения нет. На практике - нужно смотреть по обстоятельствам, чем проще будет пожертвовать, какие конкретные требования существуют. Иногда даже банальное копирование кода оказывается лучшим решением чем нагромождение абстрактных классов - если скопировать нужно всего пару строчек. Если это позволит программе оставаться модульной иногда лучше чем придумывать интерфейсы / абстрактные классы, которые все равно либо притянут кучу зависимостей, либо не дадут достаточной гарантии относительно взаимодействующих сторон.
Что до вопроса в заголовке темы: ну, перед вами есть пример с тысячелетней историей того, как люди необоснованно и неукоснительно дословно соблюдали набор принципов, которы зачастую не то, что не имел ничего общего с действительностью, но даже вредил особо рьяным исполнителям.
Скорее всего "мост" и "стратегия" взаимозаменимы / зависят от точки зрения того, кто их описывает.
Что вики говорит по этому поводу:
Цитата:
The UML class diagram for the Strategy pattern is the same[further explanation needed] as the diagram for the Bridge pattern. However, these two design patterns aren't the same in their intent. While the Strategy pattern is meant for behavior, the Bridge pattern is meant for structure.
The coupling between the context and the strategies is tighter than the coupling between the abstraction and the implementation in the Bridge pattern.
|
Что в переводе на человеческий:
Цитата:
|
Это одно и то же, просто кому-то надо было реферат дотянуть до нужного количества страниц, а преподаватель не разрешил шрифы растягивать.
|