Absoluut waar, zo is het voor iedereen te lezen. Buitenom dat is het ook voor ervaren programmeurs makkelijker te begrijpen. Dit zou ook mijn voorkeur hebben t.o.v. het geneuzel met pointers. Het enige nadeel wat ik me kan bedenken is dat veel zaken dubbel getypt worden. Dan kunnen er over tijd foutjes in sluipen. Voornamelijk met kopiëren en plakken, of het hernoemen van zaken. Maar dat is denk ik acceptabel over de leesbaarheid van de code.

Ik doelde eigenlijk meer op dat je niet te veel in een switch wil doen. In jouw voorbeeld wordt er per state een functie aangeroepen. Dat is dus zeer makkelijk te volgen. Ook al staan er 1000 states in, is het nog steeds duidelijk. Ik heb een heel mooi voorbeeld uit onze codebase, maar ik denk niet dat het op prijs gesteld wordt als ik dat zo hier neer gooi. Om een idee te geven, deze statemachine bestaat uit +- 400 regels code en heeft 8 states. Dat komt op een gemiddelde van 50 regels per state. Vol met if else's om te bepalen naar welke state er geschakeld moet worden. En dan staat er om deze switch nog een hoop om zaken uit te lezen en te berekenen. Hij staat voor binnenkort op het lijstje om die eens aan te pakken.

@hardbass:

Ik weet precies wat je bedoelt. Dat soort constructies ontstaan vaak in de loop van de tijd. Het begint met een enkele if in een case, die krijgt er een else bij en dan groeit het als onkruid.

Opruimen is vaak een enorm geklooi omdat er gebruik gemaakt wordt van allelei variabelen die alleen in de scope van de switch bestaan.

Jah, en dan niet te vergeten dat er door de tijd heen allerlei voorwaarden ontstaan die misschien wel of niet meer logisch zijn. Als je zoiets opruimt, is er een groot gevaar dat het daarna niet meer helemaal hetzelfde werkt. Ik heb die switch zelf ooit in het leven geroepen. Toen was die nog klein en schattig, maar door de tijd heen is het een akelige puber geworden.

Maar goed, ik heb nu wel meer dan genoeg dit topic gekaapt. O-)