@MaxLich
java developer

В чём отличия и сходства паттернов Adapter, Decorator, Wrapper и Proxy?

Здравствуйте. Разбираюсь понемного с паттернами проектирования, и не могу понять разницу в данных паттернах. В некоторых местах их считают синонимами. Отличия адаптера и декоратора я вроде бы нашёл (как я понял первый реализует интерфейс отличный, от интерфейса оборачиваемого объекта; а второй реализует тот же интерфейс, что и оборачиваемый объект). Но вот чем отличается адаптер от раппера (обёртки) найти не могу. Также не понятно, чем прокси отличается от декоратора. PS Желательны примеры кода (на языке Java), чтобы сразу увидеть отличия и сходства.
  • Вопрос задан
  • 2850 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
Адаптор - частный случай декоратора. Отличие скорее в том, что декоратор может быть масштабнее (содержать в себе много сущностей, в то время как адаптор, как правило, реализует интерфейс для определенного типа).

Прокси - противоположность первых двух, т.к. ее задача - быть прозрачной на стыке взаимодействия типов и не менять интерфейс.

Оберткой может быть любая агрегация, это общее понятие, грубо можно предыдущие типы назвать (реализовать) обертками. Но чаще это означает дополнение оборачиваемого объекта какими-либо данными. Допустим, метаинформацией.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы