Ir ao conteúdo
  • Cadastre-se

Menos parâmetros em java


Posts recomendados

No programa abaixo, em: LeituraAtleta e LeituraSaida eu tenho 5 parâmetros, no entanto isso é ruim, para POO..

 

Como eu posso otimizar e passar menos parâmetros?

public static void main(String[] args) {
        
        ArrayList <Pais> listaPais = new ArrayList<>();
        ArrayList <Atleta> listaAtleta = new ArrayList<>();
         
  		// Declaração dos 5 esportes
        Corrida corrida = new Corrida(1, "Corrida");
        Natacao natacao = new Natacao(2, "Natação");
        LevantamentoDePeso levantamentoDePeso = new LevantamentoDePeso (3, "Levantamento de peso");
        SaltoEmAltura saltoEmAltura = new SaltoEmAltura (4, "Salto em Altura");
        GinasticaArtistica ginasticaArtistica = new GinasticaArtistica (5, "Ginastica artistica");
        
        LeDados lePais = new LeDados();
        LeDados leAtleta = new LeDados ();
        LeDados leSaida = new LeDados ();
        
  
        lePais.LeituraPais(listaPais);
  		// MUITOS PARÂMETROS! Ruim para Programação Orientada a Objetos
  		// Como resolver??? (Diminuir n de parâmetros)
        leAtleta.LeituraAtleta(listaAtleta, corrida, natacao, levantamentoDePeso, SaltoEmAltura, GinasticaArtistica);
        leSaida.LeituraSaida(corrida, natacao, levantamentoDePeso, SaltoEmAltura, GinasticaArtistica);
        
    }

 

Link para o comentário
Compartilhar em outros sites

@dcm50 porque estou criando 5 parâmetros em uma função.. 

 

No caso, são apenas 5 esportes, fixos.. Mas, fico pensando, e se fosse em uma Olimpíadas de verdade e tivesse umas 50 modalidades, ai não seria viável fazer isso.

 

Cada modalidade é um objeto que possui id e nome e preciso deles por parâmetro para não perder as operações que eles realizam.. Como assim uma lista?

Link para o comentário
Compartilhar em outros sites

Você tb pode analisar de outra forma...

Todos os Esportes podem implementar uma interface "Esporte" e com isso, dentro do método, elas podem executar esse trabalho de leitura e escrita tranquilamente, não importando qual o esporte real ... Com isso você só precisaria passar, além da coleção de Atletas, uma coleção de Esportes ... se a pesquisa for pelo id, você pode usar um Map<Integer, Esporte>, e o id vira o índice da sua coleção retornando o esporte desejado ...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...