Wzorzec projektowy Proxy

Zastanawialiście się czasami z ilu wzorców projektowych korzystacie używając jakiegokolwiek frameworka? Ostatnio spotkałem się z kolejnym, gdzie nawet nie zastanawiałem się jak to działa. Po prostu to używałem.

@Transational

Miałem kiedyś problem z tranzakcjami w springu. Nawet napisałem o tym wpis. Nie zastanawiałem się jednak dlaczego musiałem tak rozwiązać ten problem. Dowiedziałem się o tym dzięki dwum wydarzeniom. Po pierwsze na rozmowie rekrutacyjnej odpowiedziałem, że problem z tranzakcjami załatwiłbym poprzez wzorzec proxy. A po drugie działam na kodzie, który korzysta z aspektów używając adnotacji i wyglądało to podobnie. Po tym natchneło mnie, aby się dowiedzieć jak to działa i okazuje się, że ciągle używam tytułowego wzorca.

Na czym to polega?

Wzorzec proxy jest bardzo prosty. Tworzony jest obiekt pośredniczący zastępujący docelowy i obudowujący go. Wykonywane są operacje wokół operacji docelowej. Przykładem może być tranzakcja, otwieranie i zamykanie połączeń, obsługa plików lub nawet walidacja danych.

Dlaczego więc nie działało proxy w tranzakcji?

Obiekt jest zastępowany na etapie wstrzykiwania obiektów, dlatego przy samym już wywołaniu funkcji nie można go zastąpić.

Podsumowując

Rozumiąc zasadę działania tego wzorca, zaoszczędzimy masę czasu szukania dlaczego coś nie działa lub zastanawiania się jak to rozwiązać.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot