Já o termo encapsular refere-se a esconder os detalhes internos daquela funcionalidade de quem a acessa, o que é importante não só para dar mais segurança à aplicação, mas também para não poluir o próprio ambiente de desenvolvimento. Por exemplo, você sabe que ao ligar o aparelho de ar-condicionado ele funcionará, você não precisa saber como os fios, motor, tubulações e demais peças estão conectadas internamente. Pois bem, essas peças todas estão encapsuladas em um objeto chamado ar-condicionado.

Dica: quando você precisar esconder as partes internas de um objeto, use a notação da UML de agregação. Dessa forma, você estará escondendo a complexidade de todo um objeto do mundo exterior que o acessa (os demais objetos que interagem com ele).

A composição é um tipo especial de agregação, para entender a composição é mais fácil quando comparamos as duas:

Composição Agregação
Representa um único objeto, indivisível, cujo ciclo de vida é integrado, se evento encerra a vida de parte do objeto, todo o objeto é extinto. Representa um objeto constituído pelo relacionamento de vários outros objetos. Cada subparte tem seu ciclo de vida próprio, o encerramento de uma parte não interfere no ciclo de vida das demais subpartes.
Ex. Se um aparelho de ar-condicionado queima o condensador, é correto pensarmos que todo o aparelho estragou, pois a parte “condensador” é indispensável para o funcionamento do ar-condicionado. Ex. Se um caminhão carrega uma carreta, e essa carreta é removida do caminhão, ele continua funcionando normalmente, sem nenhuma interferência. A remoção da carreta não faz com que o caminhão torne-se imprestável, o ciclo de vida dele continua independentemente da carreta.

Observe que a diferença básica é a força com a qual os objetos estão ligados entre si. Na composição, a força é extrema e vital, já na agregação é uma espécie de “parceria suave”.

Copyright © 2014 AIEC.