Comments 8
А причем здесь дизайн игр?
Адаптер и Обёртка (Декоратор) - это разные паттерны
Слово wrapper в английском языке применяется и для адаптера, и для декоратора.
Применяется где? Гугл переводчик среди всех возможных вариантов перевода слова "wrapper" не показывает "адаптер", а само слово "адаптер" переводит как "adapter". Но, это всё - мелочи, главное, что в книге "Приемы объектно-ориентированного проектирования. Паттерны проектирования", авторы которой известны как "Банда четырёх", адаптер и декоратор (он же - обёртка) - это разные паттерны
Применяется где?
Людьми, в общении вживую и в интернете.
Гугл переводчик среди всех возможных вариантов перевода слова "wrapper" не показывает "адаптер"
Он и не должен его показывать, потому что это переводчик, а не справочник по терминам программирования.
Но, это всё - мелочи, главное, что в книге "Приемы объектно-ориентированного проектирования. Паттерны проектирования", авторы которой известны как "Банда четырёх", адаптер и декоратор (он же - обёртка) - это разные паттерны
Открываем GoF в оригинале, листаем до страницы адаптера, начинаем читать:
Супер! А теперь открываем паттерн "Декоратор" и видим
Означает ли это, что адаптер и обёртка - один и тот же паттерн? Нет не означает. В статье речь идёт как раз об адаптере а не об обёртке. Смешивать их - неправильно
Означает ли это, что адаптер и обёртка - один и тот же паттерн?
Нет, это означает, цитирую свое первое сообщение, "Слово wrapper в английском языке применяется и для адаптера, и для декоратора.". Никакого смешивания в статье нет, они просто цитируют GoF.
А в некоторых источниках wrapper это вообще паттерн, объединяющий под собой adapter и decorator как частные случаи. И такое направление мыслей очень легко понять. Когда мы помещаем один класс в другой, и используем первый через вызовы второго, получается мы его оборачиваем. А значит то что снаружи - обертка. Я например неоднократно сталкивался с тем что wrapper'ами называют плюсовые классы вокруг какого-то элемента winapi, например сокетов или окон. Причем сделанные не с целью подогнать интерфейс, как в случае адаптера, а только чтобы упростить их использование. А паттерны только затем и записаны, чтобы систематизировать то как программисты часто называют некоторые приемы.
Java. Adapter Pattern in Game Server