Что такое шаблон двустороннего адаптера - PullRequest
6 голосов
/ 14 октября 2011

В книге «Design Patterns» от GoF (Eric Gamma и др.) Упоминается шаблон двустороннего адаптера, который используется для прозрачности.Они полезны, когда 2 разных клиента хотят видеть один и тот же объект по-разному.Может ли кто-нибудь привести пример C ++ для того же и в каких практических сценариях его можно использовать ??

Ответы [ 3 ]

4 голосов
/ 16 апреля 2015

Двухсторонние адаптеры - это адаптеры, которые реализуют оба интерфейса Target и Adaptee.Адаптированный объект может использоваться в качестве Target в новых системах, работающих с классами Target, или в качестве Adaptee в других системах, работающих с классами Adaptee.Если пойти дальше в этом направлении, у нас могут быть адаптеры, реализующие n интерфейсов, адаптирующиеся к n системам.Двусторонние адаптеры и n-way адаптеры сложно реализовать в системах, не поддерживающих множественное наследование.Если адаптер должен расширять класс Target, он не может расширять другой класс, например Adaptee, поэтому Adaptee должен быть интерфейсом, и все вызовы должны передаваться от адаптера объекту Adaptee.

Adapter Design Pattern

Источник: http://www.oodesign.com/adapter-pattern.html

3 голосов
/ 14 октября 2011

Я считаю, что приведенное здесь объяснение довольно хорошее.Это пример C #, но объяснение ясное, и пример довольно легко может быть переведен в код C ++.Пример также довольно подробный.

0 голосов
/ 14 октября 2011

Как объясняет Go4 (для меня стр. 143), это расширение Adapter для множественного наследования. Вместо расширения одного типа интерфейса класс адаптера расширяет два.

...