Adapter w języku Go
Adapter to strukturalny wzorzec projektowy pozwalający na współpracę niekompatybilnych obiektów ze sobą.
Adapter pełni rolę opakowania dwóch obiektów. Przechwytuje wywołania jednego z obiektów i przekształca je na format i interfejs zrozumiały dla drugiego obiektu.
Przykład koncepcyjny
Mamy kod klienta który oczekuje pewnej funkcjonalności od obiektu (port Lightning) oraz kolejny obiekt zwany adaptee (laptop Windows) oferujący tę samą funkcjonalność za pośrednictwem innego interfejsu (przez port USB).
Można tu skorzystać ze wzorca Adapter. Zaczniemy od stworzenia struktury znanej jako adapter która:
-
Będzie zgodna z interfejsem jakiego oczekują klienci (port Lightning).
-
Przetłumaczy żądania od klienta do postaci zrozumiałej dla obiektu wyposażonego w ów adapter. Adapter przyjmuje wtyk typu Lightning, po czym tłumaczy otrzymywane sygnały do formatu USB i przekazuje je portowi USB w laptopie Windows.