Niedawno zacząłem szukać Wzorów projektowych i jedna rzecz, którą koduję, idealnie pasuje do wzorca Strategii, z wyjątkiem jednej małej różnicy.
Zasadniczo niektóre (ale nie wszystkie) z moich algorytmów wymagają przekazania dodatkowego parametru lub dwóch.
Więc albo będę musiał
- przekazuję im dodatkowy parametr, gdy wywołuję ich metodę obliczania
lub
- przechowuj je jako zmienne w klasie ConcreteAl Algorytm i być w stanie je zaktualizować, zanim wywołam algorytm.
Czy istnieje wzorzec projektowy dla tej potrzeby / Jak mogę to zrealizować, pozostając przy schemacie strategicznym?
Rozważałem przekazanie obiektu klienta do wszystkich algorytmów i zapisanie tam zmiennych, a następnie użycie go tylko wtedy, gdy dany algorytm tego potrzebuje. Myślę jednak, że jest to zarówno niewygodne, jak i pokonuje sens wzorca strategii.
Żeby było jasne, wdrażam w Javie, więc nie mam luksusu opcjonalnych parametrów (które by to ładnie rozwiązały).