Witam serdecznie.
Mam taki kłopot nad zastosowaniem odpowiedniego wzorca do rozwiązania takiego problemu:
zrobCos() {
if(warunek1){
zrob1();
}else
if(warunek2){
zrob2();
}
}
Moje podejście do tego typu sytuacji jest mniej więcej takie:
Tworzę interfejs
Interface ZrobCos
zrob();
KlasaWykonawca {
metodaX(ZrobCos zrobCos) {
zrobCos.zrob();
}
}
Oraz obiekty implementujące ten interfejs , które odpowiednio wykonują zadane operacje według przeznaczenia .
Oczywiście to okrojony przykład
Problem polega na tym, że z front-endu idzie parametr, który określa która implementacja ma być użyta co prowadzi do użycia if-ów lub case.
Moim pomysłem jest przekazanie parametru określającego nazwę klasy jako parametru przychodzącego z front-endu. Przy pomocy refleksji tworzymy instancję tej klasy na podstawie przekazanego parametru. Pozbywamy się if-ów.
Czy moje rozwiązanie jest akceptowalne ? Ma ktoś ciekawsze podejścia ?
Może jakieś inne dobre praktyki eliminacji if-ów.
Pozdrawiam