Należy do wzorców strukturalnych. Jego celem jest umożliwienie współpracy dwóch klas o niekompatybilnych interfejsach lub opakowanie starego interfejsu w nowy.

Należy do behawioralnych wzorców projektowych. Pozwala zdefiniować konkretne zachowanie/algorytm i wydzielić je do osobnych klas. Następnie umozliwia wymienne stosowanie obiek