Relacionamento entre Objetos e Classes
Relacionamento entre Objetos (Associação, Agregação e Composição) e Classes (Dependência)
Associação:
-É um relacionamento entre objetos;
-Relacionamento n-ário, uni ou multidirecional;
-Simétrico: se um objeto Class1 está associado a um objeto da Class2, logo o objeto Class2 está associado ao objeto da Class1;
-Ligação (de referência) tem duração maior do que a execução de uma única operação;
-O relacionamento entre objetos não faz necessariamente com que eles dependam um do outro para existir;
-Associação unidirecional: a navegação ocorre apenas em um sentido;
-Cada ponta (lado) da associação carrega informações sobre como interpretar a ligação entre objetos;
-Quando há esse relacionamento, pode haver a criação de outra classe (Associativa) entre esses duas classe, e essa classe associativa pode participar de outros relacionamentos;
Associações bidirecional:
Agregação:
-Relacionamento binário TODO-PARTE, onde um objeto TODO (agregador) agrega um ou mais objetos PARTE (agregado), ou seja, o objeto PARTE está contido no TODO;
-Palavras chave: "consiste em", "é parte de" ;
-Palavras chave: "consiste em", "é parte de" ;
-A existência do objeto PARTE faz sentido, mesmo não existindo o objeto TODO, porém o contrário não é verdadeiro;
-Os objetos PARTE podem ser compartilhados (ligação de referência) com mais de um objeto TODO;
-Os objetos PARTE podem, ser compartilhados com mais de um objeto TODO. Por isso, este tipo de agregação é também chamada de agregação compartilhada;
-Onde se puder utilizar uma agregação, pode-se usar também uma associação;
Exemplo:
EXEMPLO PRÁTICO:-Onde se puder utilizar uma agregação, pode-se usar também uma associação;
Exemplo:
public class Pedido{
private Cliente cliente; public void addClienteNoPedido(Cliente cliente){
this.cliente = cliente;
}
}
public class Cliente{
}
Composição:
-Relacionamento binário TODO-PARTE, onde um objeto TODO (agregador) agrega um ou mais objetos PARTE (agregado);
-A existência do objeto PARTE não faz sentido sem o objeto TODO e vice-versa.
-Quando o TODO é destruído, todas as PARTES também são destruídas.
-Os objetos PARTE são exclusivos (ligação de valor) do objeto TODO;
-É mais forte que a agregação;
Exemplos:
Dependência:
-Relacionamento entre classes;
-Um objeto depende de outro para existir;
-Relacionamento sempre unidirecional;
-Class1 depende de Class2, pois a implementação de Class1 utiliza de alguma forma Class2;
-Class1 é considerada o Cliente e Class2 o Provedor;
-Uma simples chamada a uma operação da class2 ou a declaração de uma variável Class2 já configura dependência de Class1 para Class2;
-Qualquer mudança em Class2 pode ter impacto em Class1
Ex: O objeto casa depende do objeto rua e de um objeto lote, caso o lote diminua ou mude o nome da rua, pode gerar um efeito no objeto casa (diminuição da casa ou até demolição dela);
-Identifica uma ligação fraca entre objetos de duas classes;
-O uso de dependência favorece o alto acoplamento na estrutura do sistema, e isso não é bom;
-Há uma facilidade pois diminui a complexidade na modelagem do sistema;
-Tentar não usar dependência na maioria das vezes, torna a implementação mais complexa, o que demanda mais tempo para modelar e implementar a solução, e dificulta a manutenibilidade do software (considerando o perfil médio de Analista de Sistemas);-O uso de associação, composição e agregação já possuem dependência;


















Comentários
Postar um comentário
Obrigado pelo contato, retornarei o mais breve possível!