Apenas um Ponto de Saída num Método  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
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"...
[WWW]
ViniGodoy
Moderador
[Avatar]

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.
[WWW]
RafaelRio
Java Ninja
[Avatar]

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.
[Email]
RafaelRio
Java Ninja
[Avatar]

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.
[Email]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team