Objetos dentro de objetos Java?

10 respostas Resolvido
poojava
F

Estou começando em java e tenho uma duvida em relação a boas praticas no armazenamento de objetos dentro de objetos, oque é mais recomendado, armazenar um objeto dentro de outro ou relacionar utilizando ids?

Exemplo:

public class Empresa {
    private int idEmpresa  = 1;
    .......
}


public class Funcionario {
    private int idEmpresa  = 1;
    private idFuncionario = 1;
    .......
}

Acredito que guardar o próprio funcionario dentro de uma lista no objeto empresa seria o ideal mas ao trabalhar com varias classes acabava perdendo a referencia da empresa daquele funcionario… é valido utilizar as duas formas em conjunto?

10 Respostas

J

Você guarda o objeto inteiro, que no caso seria uma das principais práticas de orientação a objeto:

public class Empresa {
private int idEmpresa;
.......
}

public class Funcionario {
private Empresa empresa;
private idFuncionario;
.......
}
S

Objetos não tem suas referências perdidas ao acaso, se perdeu referência, é porque alguém removeu a referência, um provável bug na sua implementação.

D

porque precisa de atributos “idEmpresa” e “idFuncionario”, é o id deles no Banco de Dados?

J

São atributos da classe, neste exemplo eles representam os mesmos id’s de suas tabelas no banco, são utilizados para manipular cada um individualmente dentro da aplicação java.

F

Quando disse que perco a referencia quis dizer por exemplo:

Em certo momento do código tenho acesso apenas ao objeto funcionário mas preciso acessar a empresa que ele pertence, a melhor forma seria uma lista de empresas estatica onde qualquer classe possua acesso?

J

Você pode acessar a empresa a partir do funcionário em questão!

Exemplo:

Funcionario func = new Funcionario();
func.setEmpresa(new Empresa());

func.getEmpresa().getIdEmpresa();//resgatando informação
func.getEmpresa().setIdEmpresa();//enviando informação
F

Entendi… Existe algum padrão para onde deixar a lista de empresas? por exemplo, em uma List publica e estatica em uma classe separada ou devo passar essa lista para cada classe que for utilizar?

J

Mano dar uma lida para tipos enum eles são melhores para trabalhar, e tem desempenho melhor que criar Lista estática e tudo mais, recomendo que olhe e tenho certeza q vc vai tirar uma ideia:

http://www.botecodigital.info/java/uma-introducao-aos-enums-no-java/

J
Solucao aceita

Eu não utilizo listas estáticas, somente dinâmicas, mas o correto seria criar e carrega-lá no DAO, e somente apresentar na view.
Da uma olhada em padrões de projeto MVC, isso vai te dar um bom conhecimento sobre onde colocar o quê, como manipular e tudo mais.

F

Obrigado Jonathan, vou verificar!!

Criado 9 de maio de 2017
Ultima resposta 10 de mai. de 2017
Respostas 10
Participantes 5