Meu programa precisa executar uma sequência de etapas do início ao fim. Mas, com base em entradas diferentes, o ponto de partida variará, por exemplo, alguns serão executados desde o primeiro passo até o fim, outros serão executados do 2º passo até o final, outros serão executados do 3º ao final, etc.
Eu só preciso de um design simples, atualmente eu uso o switch fall-through assim:
switch (step) {
case 1:
//do the 1st step
//fall through, so no break here
case 2:
//do the 2nd step
//fall through
case 3:
//do the 3rd step
//fall through
...
}
Funciona, mas a queda no código sempre me deixa desconfortável. Existe uma maneira melhor e simples de fazer isso?
Respostas:
Dependendo do idioma que você está usando, é possível criar uma matriz de funções e usá-lo
step
como ponto de partida para fazer um loop sobre elas. Algo como:fonte
A maneira como você está fazendo isso é perfeitamente boa e simples; é para isso que serve a inovação em primeiro lugar. Se você ficar mais confortável, poderá adicionar um comentário explicando o que está fazendo (para que outra pessoa não demore meia hora para entender por que é assim).
fonte