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" ;
-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:

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:



Resultado de imagem para dependencia uml



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;




Resultado de imagem para dependencia uml








Comentários

Postagens mais visitadas deste blog

Método da Interpolação por Eliminação Gaussiana em Scilab

Cálculo do Erro para Interpolação em Scilab

Método de Interpolação de Lagrange em Scilab