Меня спросил коллега о шаблоне проектирования моей реализации службы Windows WCF в ASP.net клиентское приложение, и я действительно не мог сказать, является ли это Мостом или Адаптером !
Вот реализация:
Я всегда думал об этом как о реализации шаблона Адаптер, но на самом деле я не могу сказать, почему это не так. это Мост!
Я прочитал все сообщения здесь в SO, GoF и википедии, но это действительно не имеет смысла!
Насколько я понимаю, оба шаблона указывают на существующий тип, оба отделяют абстракцию от ее реализации. Я что-то упустил?
Вот из GoF:
Основное различие между этими шаблонами заключается в их назначении. Адаптер фокусируется на устранении несовместимости между двумя существующими интерфейсы. Он не фокусируется на том, как эти интерфейсы реализованы, он также не рассматривает, как они могут развиваться независимо. это способ заставить два независимо разработанных класса работать вместе без повторная реализация того или иного. Мост, с другой стороны, соединяет абстракция и ее (потенциально многочисленные) реализации. Это обеспечивает стабильный интерфейс для клиентов, даже если позволяет изменять классы, которые его реализуют. Он также поддерживает новые реализации, такие как система развивается.
Я не совсем понимаю приведенное выше утверждение.
Обновление:
Снова от GoF:
Помните, что адаптер заставляет два существующих интерфейса работать вместе. в отличие от определения совершенно нового.
Означает ли это, что изменение существующего интерфейса, чтобы он мог работать с другим интерфейсом, является реализацией Адаптера?
Обновление 2:
Только что нашел эту невероятную статью: Иллюстрированные шаблоны проектирования GOF в C#
Это настоящая структура шаблона моста:
Я упустил тот факт, что шаблон моста позволяет комбинировать различные абстракции и реализации и расширятьих независимо