Porque eu sempre tenho que fazer um List de uma classe dentro da daquele que eu referencio?
Tipo, eu tenho duas classes, Projeto e Requisito, dentro de Requisito eu tenho um projCodigo que é a referencia da Classe Projeto, e dentro da Projeto eu coloco um List/Collection de Requisito?
Por que se deve fazer isso?
Refêrencia de Classes
3 Respostas
Boa noite flaviotomazio!
Caso eu não tenha acertado a resposta,
coloca o código para entendermos melhor a pergunta ou dê mais detalhes.
o porque…
Quando você abstrai uma informação para fazer um programa, um dos passos principais é estabelecer a relação entre as classes que pode ser assossiação, agragação, composição (…). Podemos tambem especificar se essa relação é uni-direcional ou bi-direcional.
exemplo:
Unidirecional
Tenho as classes Projeto e Requisito “classes citas na questão”, se for uni-direcional, da classe Projeto para Requisito, quer dizer que Projeto tem uma referência requisito e Requisito não tem uma a projeto, porém, a classe Requisito não pode acessar os metodos da classe Projeto.
Bidirecional
Imagine os seguintes atributos.
1ª classe
Projeto
- dataProjeto
- numeroProjeto
2ª classe
Requisito
- tempoMínimo
3ª classe
Usuario
- ref. Requisito
Agora se eu tenho uma referência projeto em Requisito e uma referência requisito em Projeto posso atraves de projeto saber qual o requisito que é o tempoMínimo.
Agora se eu tenho uma terceira classe usuario que tem Requisito, como este tem uma referencia projeto, posso saber atraves dele qual a data do projeto e qual o número do projeto.
outro exemplo, as classes Loja e Produto, na loja tem acesso a um List produto, mas, não há razão para o produto ter acesso a loja, então não precisa fazer um list loja em produto a não ser que você queira saber em quantas lojas o produto foi adicionado e quais os dados das lojas.
A grosso modo:
Porta tem relação com maçaneta, atraves da porta posso escolher qual a cor, modelo e tamanho da maçaneta.
quer dizer que Porta tem uma referencia a maçaneta e maçaneta não tem referencia a porta, fica um pouco estranho se tivesse, mas, pode ter não é proibido.
Agora respondendo diretamenta a pergunta, Requisito tem projCodigo, relacinamento uni-direcional, não precisa colocar um List/Collection de requisito não.
A não ser que você faça um relacionamento bidirecional, depende qual abstração foi foi feita.
Espero ter ajudado…
Então com isso teria como exibir os requisitos que apenas estivessem referenciando o objeto X da Classe Projeto?
public class Requisito{
private Projeto meuProjeto;//tem como eu saber o numProj através de getNumProj()
}
class Projeto{
privete int numProj;
public int getNumProj(){
return this.numProj;
}
}