Composição (mistura) é uma maneira de combinar objetos simples ou tipos de dados em tipos mais complexos. As composições são um bloco de construção crítico de muitas estruturas de dados básicas
A agregação (coleção) difere da composição comum, pois não implica em propriedade. Na composição, quando o objeto proprietário é destruído, os objetos contidos também são. Em agregação, isso não é necessariamente verdade
╔═══════════╦═════════════════════════╦═══════════════════════╗
║ ║ Aggregation ║ Composition ║
╠═══════════╬═════════════════════════╬═══════════════════════╣
║ Life time ║ Have their own lifetime ║ Owner's life time ║
║ Relation ║ Has ║ part-of ║
║ Example ║ Car has driver ║ Engine is part of Car ║
╚═══════════╩═════════════════════════╩═══════════════════════╝
Ambos denotam relação entre objeto e diferem apenas em sua força.

NotaçõesUMLparadiferentestiposdedependênciaentreduasclasses 
Composição:comoomecanismofazpartedocarro,orelacionamentoentreelesécomposição.AquiestácomoelessãoimplementadosentreasclassesJava.
publicclassCar{//finalwillmakesureengineisinitializedprivatefinalEngineengine;publicCar(){engine=newEngine();}}classEngine{privateStringtype;}
Agregação:comoaorganizaçãotemPersoncomofuncionários,orelacionamentoentreeleséAgregação.AquiestácomoelesseparecememtermosdeclassesJava
publicclassOrganization{privateListemployees;}publicclassPerson{privateStringname;}
Fonte