Я был допрошен коллегой о шаблоне проектирования моей реализации службы WCF окна в клиентском приложении ASP.net, и я действительно не могу сказать, является ли это мост или адаптер !Bridge против адаптера Design Pattern
Вот реализация:
- Я получил контракт на оказании услуг
- определивших новый интерфейс, похожий на мой контракт WCF Data
- Я создал клиент WCF и завернутый его в новом интерфейсе
- Нанесен новый интерфейс на оригинальный клиент WCF (здесь я делаю некоторые операции с регистрацией/ошибкой)
Я всегда думал об этом как о реализации Адаптер образец, но на самом деле я не могу сказать, почему это не так. Bridge!
Я прочитал все сообщения здесь, в SO, GoF и wikipedia, но это действительно не имеет смысла!
В моем понимании, обе модели точки на существующий тип, как отвязать абстракцию от ее реализации я пропускаю точку?
Вот от GoF:
Основное различие между этими узорами заключается в их намерениях. Адаптер фокусируется на разрешении несовместимости между двумя существующими интерфейсами . Он не фокусируется на том, как реализуются эти интерфейсы, и не рассматривает, как они могут развиваться независимо. Это способ сделать два независимо разработанных класса работать вместе без , переопределяя тот или иной. Мост, с другой стороны, мостирует абстракцию и ее (потенциально многочисленные) реализации. Он обеспечивает стабильный интерфейс для клиентов, даже если он позволяет вам изменять классы , которые его реализуют. Он также поддерживает новые реализации, как система развивается.
Я не полностью понимаю вышеуказанное заявление,
- Означает ли это, что если я изменить адаптируемый или изменить реализацию оригинального интерфейса во время разработки, то это мост Pattern ?
- Различия звучат тривиально, есть ли какие-либо другие отличия в реализации реализации/абстации?
- Как можно сказать, какая реализация используется после разработка?
- Может ли кто-нибудь дать мне хороший пример шаблона моста и как его можно изменить во время жизненного цикла программного обеспечения?
Update:
Опять из GoF:
Помните, что адаптер делает два существующих интерфейса работать вместе в отличие от определения совершенно новый.
Означает ли это, что изменение существующего интерфейса, так что он может работать с другим интерфейсом является реализацией адаптера?
Update2:
Просто найти эту невероятную статью: Illustrated GOF Design Patterns in C#
Это истинная структура моста Скороговорки:
я пропускал тот факт, что модель Bridge позволяет комбинировать различные абстракции и реализацию и удлинить их независимо
Да, вы правы частью декоратора, однако по определению кажется, что это шаблон моста, поскольку контракт на обслуживание WCF эволюционируя во время жизненного цикла программного обеспечения! –
Мост, используемый для подключения двух иерархий классов. Я не вижу здесь никакой иерархии. –