Compoziție în programare sau compoziție de obiecte. De asemenea, agregarea și includerea înseamnă crearea obiectelor din clasele existente ca elemente ale altor clase. Compoziția este adesea menționată ca o "relație de apartenență" în conformitate cu principiul că "mașina are un corp, roți și un motor".
Obiectele născute dintr-o clasă nouă sunt de obicei declarate private, ceea ce le face indisponibile pentru programatorii de aplicații care lucrează cu clasa. În plus, creatorul de clase poate modifica aceste obiecte fără a deranja munca codului client existent. În plus, înlocuirea obiectelor imbricate în stadiul de execuție a programului vă permite să vă modificați dinamic comportamentul. Mecanismul de moștenire nu are o astfel de flexibilitate, deoarece clasele derivate sunt constrânse să fie verificate la etapa de compilare.
Spre deosebire de moștenire, unde tipul relației dintre obiectul copil și părinte este legătura Is-a, adică dacă obiectul de pisică este dat de animal. atunci pisica este un animal (pisica este un animal de companie), apoi in compozitie tipul de relatie este - are (masina are motorul).
Notație UML
În UML, este marcat ca un diamant și o linie solidă desenată. Aceasta afectează întotdeauna 1 sau 0. 1, deoarece nu mai mult de un obiect la un moment dat poate fi asociat unui alt obiect.
O formă mai generală, Agregarea, este descrisă ca un romb gol și o linie solidă.