Como passar varios parametros de uma forma simples?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
rodolfogs8
Java Ninja
[Avatar]

Membro desde: 20/01/2007 02:11:39
Mensagens: 273
Localização: Interlagos - SP
Offline

Galera como eu passo muitos parametros para um metodo por exemplo

Metodo(var1, var2, var3, var4, var5, var6, var7, var8, var9, va10, var11, var12, var13, var14, var15, var16, var17........);

queria saber se nao existe um jeito mais simples de economizar espaco de otimizar o codigo ou seja existe uma forma de passar essa penca de parametros mais simples?? lembrando que sao de diveroso tipos, String, int, float eu pensei em um vetor seria uma boa ideia?

Rodolfo(-_-)ZZzzzZZzzzZzzzz....
Saw III
aim icon
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Certamente seu código ta fazendo coisa demais, e que provavelmente nem é papel dele.

Refatore, não há maneira melhor de diminuir a complexidade.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Alexandre Gazola
JavaTeenager
[Avatar]

Membro desde: 23/07/2004 14:48:23
Mensagens: 176
Localização: Rio de Janeiro
Offline

Cara, se o seu método está recebendo esse tanto de parâmetros, com certeza existe um problema sério nele de falta de coesão... provavelmente ele está fazendo mais coisas do que deveria...

Outra coisa que pode ser feita é tentar agrupar esses parâmetros em objetos e passar o objeto em si, em vez dos parâmetros individuais

Um abraço

Alexandre Gazola

Blog: http://alexandregazola.wordpress.com

"Que proveito tem o homem ganhar o mundo inteiro e perder a sua alma?" (Mc. 8:36)

"Buscai, em primeiro lugar, o Reino de Deus e a sua justiça, e todas essas coisas vos serão dadas por acréscimo" (Mt. 6:33)
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

O que queres fazer é um anti-pattern, só estou procurando o nome dele.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
rodolfogs8
Java Ninja
[Avatar]

Membro desde: 20/01/2007 02:11:39
Mensagens: 273
Localização: Interlagos - SP
Offline

Na verdade eu tenho uma classe que busca infor~ções na tabela ela fica rodando constantemente, e uma outra que e a minha tela ou seja ela fica apenas modificando os valores dos objetos dela com os metodos que sao chamados na classe runable so que sao muitos objetos com muitas variaveis como eu seto todos esses objetos sem passar essa penca de parametros entao??/


valeu

Rodolfo(-_-)ZZzzzZZzzzZzzzz....
Saw III
aim icon
rodrigo_corinthians
JavaEvangelist
[Avatar]
Membro desde: 07/06/2005 12:01:01
Mensagens: 316
Offline

Se usa Java 5 neh?

Entaum faça assim... e na chamada do método vc passa quantos objetos quiser separado por vírgula.

Sem mais, Rodrigo.
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

rodrigo_corinthians wrote:Se usa Java 5 neh?

Entaum faça assim... e na chamada do método vc passa quantos objetos quiser separado por vírgula.

Sem mais, Rodrigo.

Não me leve a mal, mas vejo isso como contornar uma gambiarra com outra gambiarra.

Refatore seu código, certamente não há necessidade de esse método existir.

Lembre-se que seus objetos não são apenas estruturas de dados com funçõezinhas dentro.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
rodolfogs8
Java Ninja
[Avatar]

Membro desde: 20/01/2007 02:11:39
Mensagens: 273
Localização: Interlagos - SP
Offline

Galer o problema e que tenho que passar mais de 100 variaveis de uma classe para a outra, isso e que nao sei como fazer sem ser entupindo um metodo kkkk

Rodolfo(-_-)ZZzzzZZzzzZzzzz....
Saw III
aim icon
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

OK.
Quanto a isso posso te dar apenas dicas.

Isso seria legal vc ler.
http://fragmental.com.br/wiki/index.php/Fantoches

Estude também sobre "refatoração de código".

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

Refactore seu código e trabalhe com composição. Crie classes que possuem poucos atributos e o comportamento relativo a estes atributos, de maneira coesa.
Utilize estas classes como atributos (componentes) dentro de outras classes.

Você pode criar um DAO para cada classe, quando aplicável. Não sei se vale a pena criar algo deste tipo para uma classe que possui dois atributos... Mas nesta sua classe que fica varrendo o banco com thread vc pode implementar as chamadas aos DAOs, recuperando seus objetos de maneira separada e organizada e montando as composições de volta, nao com um método que faz tudo sozinho. Isso é bagunça.

Cássio Marques

Blog
Guilherme Gomes
Virtual Machine Man
[Avatar]

Membro desde: 25/06/2007 14:32:09
Mensagens: 686
Localização: São Paulo
Offline

Se voce realmente não quer mexer no seu código (que é o mais aconselhável, pois não deveria ter um método que chegue neste ponto), use uma Lista com os parâmetros. Voce ainda pode usar um hashmap com lista pra organizar por tipo:



Mas realmente aconselho a dar uma reestruturada no seu projeto!

-----------
Atenciosamente,
Guilherme V. F. Gomes.
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
rodolfogs8
Java Ninja
[Avatar]

Membro desde: 20/01/2007 02:11:39
Mensagens: 273
Localização: Interlagos - SP
Offline

Galera tbm to achando que o meu projeto ta meio desorganizado, assim ontem uma classe que e a tela so que ela ta com um codigo infinitamente infinito kkkkkk pois tenhos muitos objetos na tela como, campos de texto, botoes, paineis e diversoso mais...como eu consigo dividir isso por classes e obter uma classe que apenas chama os pedacinhos da tela? exemplo no painel um eu tenho uma classe so p ele, o painel dois outra classe so para ele e possivel isso ou seja e viavel?

Rodolfo(-_-)ZZzzzZZzzzZzzzz....
Saw III
aim icon
diegobmd
Thread.start()

Membro desde: 31/05/2007 16:06:42
Mensagens: 28
Offline

Cara uma boa opção seria vc criar um bean con set's e get's e passa-lo como parametro

blza...
rodrigo_corinthians
JavaEvangelist
[Avatar]
Membro desde: 07/06/2005 12:01:01
Mensagens: 316
Offline

nbluis wrote:
rodrigo_corinthians wrote:Se usa Java 5 neh?

Entaum faça assim... e na chamada do método vc passa quantos objetos quiser separado por vírgula.

Sem mais, Rodrigo.

Não me leve a mal, mas vejo isso como contornar uma gambiarra com outra gambiarra.

Refatore seu código, certamente não há necessidade de esse método existir.

Lembre-se que seus objetos não são apenas estruturas de dados com funçõezinhas dentro.
Realmente tanb acho que não seria a melhor solução mas isso não é gambiarra afinal inventaram essa feature no generics pra resolver esse problema(passagem de 'n' argumentos)? Mas lógico conforme todos citaram aqui o correto seria refatoração do código.
rodolfogs8
Java Ninja
[Avatar]

Membro desde: 20/01/2007 02:11:39
Mensagens: 273
Localização: Interlagos - SP
Offline

Galera eu to chegando a conclusao de que e mais dificil aprender OO do que a sintaxe de Java.... meu eu estava acostumado a programar em linguagens cujo codigo era uma lista giganteeeeeeee.kkkkkkkk ai vem o java e mostra que e melhor criara muitos arquivos com poucos codigos e todos se comunicando entre si seria mais ou menos isso ne?? kkk

Rodolfo(-_-)ZZzzzZZzzzZzzzz....
Saw III
aim icon
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team