Ir ao conteúdo
  • Cadastre-se
Caíque Fortunato

Menos parâmetros em java

Recommended Posts

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);
        
    }

 

Compartilhar este post


Link para o post
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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Caíque Fortunato

Troque esses parâmetros por apenas dois.

Você pode substituir os nomes das modalidades por um parâmetro 'id'. 

  • Curtir 1

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×