Adapter to wzorzec strukturalny, który dopasowuje interfejs jednej klasy do interfejsu oczekiwanego przez kod klienta. Działa jak przejściówka do gniazdka: nie zmienia sposobu działania urządzenia, ale umożliwia jego podłączenie do innego standardu.
Przykład sytuacji
Aplikacja korzysta z własnego interfejsu płatności z metodą zaplac($kwota), a biblioteka bramki oferuje createCharge($cents, $currency). Klasa adaptera implementuje interfejs aplikacji i wewnątrz tłumaczy wywołania na metody biblioteki. Aplikacja nie wie, z jaką bramką rozmawia.
Kiedy sięgnąć po adapter?
Przy integracji zewnętrznych usług i bibliotek, których interfejsów nie możesz zmienić, oraz przy stopniowym przechodzeniu na nową bibliotekę. Adapter izoluje resztę kodu od szczegółów zewnętrznego API i ułatwia jego późniejszą podmianę.
Adapter a Fasada
Adapter zmienia interfejs, aby pasował do oczekiwanego. Fasada upraszcza złożony system, dając jeden prosty punkt wejścia. Oba wzorce wprowadzają warstwę pośrednią, lecz mają inny cel.
Ma to bezpośredni związek z praktykami, na których opiera się pisanie czytelnego i zrozumiałego kodu.
Zobacz w praktyce
Clean Code - jak pisać czytelny i zrozumiały kod
Headless CMS - kiedy warto porzucić monolityczny CMS
Overengineering w stronach internetowych Powiązane pojęcia
Wszystkie hasła z kategorii Programowanie i wzorce projektowe