Retornar os valores das variáveis de diferentes objetos

8 respostas
programaçãojava
Alex_Sander_Cruz

Ola a todos, criei três classes para uma papelaria (caderno, lápis e caneta) essas classes possuem diferentes tipos de atributos, existe uma classe de manipulação e nessa classe um método " String consulta()" , esse método deve retornar todos os atributos de cada um dos objetos.

Todos eles são herdados da classe pai " Produto" .

Preciso usar reflection? Se não o que preciso fazer ?

8 Respostas

javaflex

Uma classe pra cada tipo de produto que a papelaria for vender? Isso ficou bem engessado.

Nao deu muitos detalhes, mas a princípio ficaria mais flexível ter Produto, Categoria e Características de Categoria, podendo cadastrar o que quiser de específico pra cada categoria, sem essa complicação de heranças e modelo engessado.

darlan_machado

Creio que isso seja parte do exercício, senão, está totalmente fora de contexto.

Imaginei que fosse isso.

Reflection? Não. Você pode, apenas, identificar o tipo de produto e instanciar um objeto a partir do tipo de classe identificado.
Como?

  1. No cadastro: pergunte o que vai ser cadastrado.
  2. Na leitura: use a keyword instanceof
Alex_Sander_Cruz

Faz parte do exercício.
Existe uma interface de manipulação, e nela existem os métodos consulta e cadastro.
Minha dificuldade é em relação a essa função consulta.
Desculpa pelos erros, ainda tô começando em Java.

darlan_machado

Outra opção seria o padrão strategy

Alex_Sander_Cruz

Vi aqui sobre, e pode sim ajudar.
Vou tentar fazer.

darlan_machado

Trabalhar com design patterns pode parecer chato, difícil, ruim, complicado… Mas, quando engrena, vai que vai.

Alex_Sander_Cruz

Querido, se eu usar a interface de manipulação.
E em cada objeto colocar, implements manipulação.
E colocar a assinatura dos métodos lá, daria certo? Faz sentido?

darlan_machado

A ideia do strategy é resolver problemas como este. Provavelmente vá funcionar.

Criado 15 de outubro de 2019
Ultima resposta 15 de out. de 2019
Respostas 8
Participantes 3