Fórum Ajuda com Dúvida Básica de Java #585055

19/08/2017

0

Olá a todos,

Estou com uma dúvida simples de Java, e gostaria de uma opinião. Para um modelo como o a seguir, como eu poderia de forma fácil setar o valores da associação entre as duas classes?

Tipo assim:

public class Carro{
  List<Peças> peças;
}

public class Peças{
  Carro carro;
}

Qual a melhor estratégia para criar o carro? Crio primeiro as peças ou primeiro o Carro? E eu tenho que em cada peça setar o valor do Carro? Por Exemplo:

Situação 1:

Peça peça1 = new Peça();
Peça peça2 = new Peça();
Carro a = new Carro();
a.adicionaPeca(peça1);
a.adicionaPeca(peça2);
peça1.setCarro(a);
peça2.setCarro(a);


Ou 

Situação 2:

Carro a = new Carro();
Peça peça1 = new Peça();
peça1.setCarro(a);
Peça peça2 = new Peça();
peça3.setCarro(a);
a.adicionaPeca(peça1);
a.adicionaPeca(peça2);


Resumindo.. tem alguma forma fácil de eu não precisar setar o valor objeto por objeto?
Hugo Kuribayashi

Hugo Kuribayashi

Responder

Post mais votado

21/08/2017

Opa Hugo, beleza?

A melhor solução aí é a primeira.

Só que você não precisa setar a peça ao carro depois de ter adicionado, pois o relacionamento já foi feito quando você adicionou as peças ao carro...

Santos

Santos
Responder

Gostei + 1

Mais Posts

21/08/2017

Hugo Kuribayashi

Opa Hugo, beleza?

A melhor solução aí é a primeira.

Só que você não precisa setar a peça ao carro depois de ter adicionado, pois o relacionamento já foi feito quando você adicionou as peças ao carro...


Fagner,

Muito Obrigado!

Porém neste caso, eu não tenho visibilidade dupla na associação em questão correto? Pois apenas o Carro vê as peças e não vice-versa. Seria isso?
Responder

Gostei + 1

21/08/2017

Santos

Mas qual seu objetivo nesse caso?

Porque se você quiser buscar quais peças o carro A possui, é possível.

Agora se você quiser buscar quais carros possuem a peça A, aí você teria que adicionar uma chave primária à peça e buscar por todos os carros que possuem aquela peça...
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar