Como passar varios parametros de uma forma simples?

15 respostas
R

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?

15 Respostas

N

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

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

A

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

M

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

Até!

R

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

R

Se usa Java 5 neh?

Entaum faça assim…Metodo(MyObject ... myObject) e na chamada do método vc passa quantos objetos quiser separado por vírgula.

Sem mais, Rodrigo.

N

rodrigo_corinthians:
Se usa Java 5 neh?

Entaum faça assim…Metodo(MyObject ... myObject) 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.

R

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

N

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”.

C

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.

G

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:

map.put("float",lista_de_floats);

Mas realmente aconselho a dar uma reestruturada no seu projeto!

R

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?

D

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

blza…

R

nbluis:
rodrigo_corinthians:
Se usa Java 5 neh?

Entaum faça assim…Metodo(MyObject ... myObject) 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.

R

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

N

Perfeito, incrível…
Sem mais comentários…

Criado 27 de julho de 2007
Ultima resposta 27 de jul. de 2007
Respostas 15
Participantes 8