[quote=Sergio Figueras]Olha só o código mais elegante do mundo que acabei de achar:
{… 157 linhas de código.}
157 linhas de Else if. Depois que voce termina de ler isso, estar tonto é a característica minima.
[/quote]
Já vi uma vez um switch de pouco mais de 3000 linhas. Com direito a fallthrough, chamada recursiva e tudo mais. Com variáveis chamadas aaa, aab, aac, xxx (normalmente String ou Object). Basicamente era um servlet de uma aplicação horrível em JSP (que nada mais eram do que scriptlets gigantescos com alguns esparsos trechos de HTML). Aliás, um servlet não, era O servlet da aplicação.
A divisão de camadas e o MVC eram perfeitos: Esse método com o switch era o doGet (ou doPost, não me lembro ao certo), onde havia fragmentos de SQL, fragmentos de HTML, cálculos, manipulação de string e sabe-se mais o que. E devia haver pelo menos cinquenta atributos public static.
Ah sim, esse switch ficava dentro de um bloco try. E no final tinha algo mais ou menos assim:
} catch (Exception e) {
e.printStackTrace();
}
Mas não era todo o código que ficava lá não. Aparecia chamadas deste tipo:
Object o = algumaCoisa.getOutraCoisa().getMaisOutraCoisa((String) parametro1, (Integer) parametro2).metodoMaluco((Object) algo(), maisAlgo(outroParametro - 13, (Object[]) outraCoisa(variavel), umMetodo()), qualquerCoisa + 27).outroMetodo(maisUmParametro);
Depois, eu soube como é que tal código foi concebido. Tinham entregue o sistema para dois estagiários que nunca tinham visto nada de java antes e apenas sabiam um pouquinho de pascal.
Infelizmente não possuo mais essa pérola.