Sterowanie programem

0

Cześć.
Postanowiłem zadać to pytanie w tym dziale bo jest dość ogólne i mam nadzieję, że w natłoku ostatnich pytań z serii "żałujecie, że zostaliście programistami" nie będzie aż tak głupie :-)
Nie raz czytałem posty w których piętnowano nadmierne użycie instrukcji warunkowych powodujących trudniejszą (wzrokową) analizę kodu.
Moje pytanie brzmi jak radzicie sobie z takimi przypadkami? Bo o ile coś takiego widziane w kodzie można szybko przeczytać:

public void Some (){
        if(first == second) {
            // some code
        }
        else if (first > second) {
            // some code
        }
        else if(first < second) {
            // some code
        }
        else {
            // some code
        }
    }

O tyle gdy dołożymy (lub ktoś dołoży :-) ) trochę więcej...

    public void Some (){
        if(first == second) {
            if(something) {
                // some code
            }
            else {
                // some code
            }
        }
        else if (first > second) {
            if(something) {
                // some code
            }
            else if(something) {
                // some code
            }
            else {
                // some code
            }
        }
        else if(first < second) {
            if(code) {
                if(code) {
                    if(code) {
                        // some code
                    }
                    else if(code) {
                        // some code
                    }
                }
                else {
                    // some code
                }
            }
            else {
                // some code
            }
        }
        else {
            // some code
        }
    }

Nie będzie to już ani czytelne ani przyjemne. Przeglądałem Stack w poszukiwaniu dobrych idei z życia wziętych, a teraz przychodzę tutaj i podrzucam pytanie do ewentualnej dyskusji ;-)
PS.
title
:-)

0

Zazwyczaj jak ktoś tyle ifów zrobił, to popełnił gdzieś błąd przy projektowaniu, nigdy takiej konstrukcji nie widziałem, a jak już to funkcja wykonywała się wielokrotnie, ale po jednym warunku.

0

Ogólnie to masz takie coś jak wzorce projektowe i możesz przekazywać obiekt, który będzie wykonywał jedno, a jaki zostanie podany takie coś się wykona.
Nie trzeba sprawdzać co jest ustawione, bo wykonuje się to co przekażesz.
Polimorfizm obiektowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1