| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/12/2006 13:07:21
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
De qualquer maneira, você pode transformar mecanicamente um código com vários pontos de saída assim:
Original
Transformação Mecânica:
Assim eu tenho os benefícios de poder sair sem pôr um monte de flags e ifs, e os benefícios de ter apenas um ponto de saída no método. O único problema é se o zé que for manter o código não souber o que é um "labeled statement"...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/12/2006 13:24:24
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Também não gosto de labeled statements, via de regra procuro evita-los.
Muita gente não conhece e procuro deixar meu código o mais simples possível.
Mas não deixa de ser uma técnica interessante, lembra bastante o "on error goto" do Visual Basic.
Ainda sim, prefiro o return direto. Não dá margem para alguém colocar mais código depois do return.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/12/2006 20:29:12
|
RafaelRio
Java Ninja
![[Avatar]](/images/avatar/e81218f96c55d1006352ed0a3b08d790.jpg)
Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline
|
Não havia pensado nos labeled statements, thingol. Mas daí corre-se o risco de cair numa outra polêmica, já que alguns simplesmente abominam labels, comparando-os com os goto's.
Está me parecendo que essa é uma questão de estilo. Pode-se ter argumentos tanto a favor de usar, quanto o de não usar só um ponto de retorno no método.
E mesmo eu preferindo não usar essa regra, pelo menos na maioria dos casos, acabei vendo vantagens em usá-la. No código que postei antes, tinha certeza que o método não chegava até o fim - e tinha um comentário para "assegurar" que não chegasse mesmo.
Mas, eu estava errado. Com o código refatorado e com o assert lá no fim, eu pude realmente assegurar que o método fazia o que estava pensando.
|
Rafael Fiume.
Yes, Nós Temos Bananas
Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5
Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/12/2006 20:40:44
|
RafaelRio
Java Ninja
![[Avatar]](/images/avatar/e81218f96c55d1006352ed0a3b08d790.jpg)
Membro desde: 05/09/2006 06:52:42
Mensagens: 255
Localização: São Paulo
Offline
|
brunohansen wrote:
Não tenho certeza se posso citar Folwer aqui no Forum, nem se eu posso citar parte do seu livro! De qualquer forma estou fazendo, pois acho que essas citações são otimas contribuições!
Citações são excelentes. Dá base para os argumentos, ajuda a sair do "achismo". E claro, você se livra do plágio.
|
Rafael Fiume.
Yes, Nós Temos Bananas
Sun Certified Programmer for the Java Platform, Standard Edition 6
Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5
Nullius in verba.
"A palavra de nenhum homem será a final."
Lema da Royal Society, associação de cientistas de Londres, em 1660. Entre os seus membros e presidentes esteve Isaac Newton. |
|
|
 |
|
|