Adapter – Wzorzec Projektowy

Adapter jest strukturalnym wzorcem projektowym, czasem można go spotkać pod nazwą wrapper. Zrozumienie w jaki sposób działa oraz poznanie sytuacji w jakich można go użyć potrafi rozwiązać niejeden problem programistyczny.

Wyobraźmy sobie, że pracujemy w projekcie w którym używamy stworzonego przez nasz zespół loggera.

Logger nie jest specjalnie skomplikowany – wszystko wyświetla na konsoli.

W trakcie trwania projektu przychodzi decyzja, że wszystkie logi maja być zapisywane w pliku, a nie wyświetlane na konsoli. Dodatkowo ma być użyta w celu zapisania logów zewnętrzna biblioteka.

Aby zapisać logi do pliku  przy pomocy zewnętrznej biblioteki musimy napisać następujący kawałek kodu:

Możemy również użyć zaimplementować to też w inny sposób:

Na potrzeby tego przykładu nie jest trudne zamienić te pojedyncze linijki. Jednak w przypadku dużego projektu tego rodzaju zmiana może zając bardzo dużo czasu i z całą pewnością o czymś się zapomoni i będą błędy.

Sposób bezpieczny – Adapter

Problem który próbujemy rozwiązać to dostosować istniejący interfejs do API zewnętrznej biblioteki. Adapter daje nam możliwość zaadaptować nowy interfejs z starym interfejsem. Wzorzec adapter radzi, aby stworzyć klasę, która będzie implementować interfejs naszego starego loggera i wykona operacje na zewnętrznej bibliotece.

Jak adapter wygląda w UMLu?

Adapter

 

Przydatne linki – Adapter

Przykład kiedy używać wzorca adapter. Polecam!

Fajny przykład z adapterem.

Film na yt z tłumaczeniem jak działa adapter.

 

 

Powered by: Wordpress