Compoziție și agregare
Clasele și obiectele pot fi legate între ele. Moștenirea descrie o relație „IS A”. Un leu ESTE UN animal. Această relație se exprimă ușor folosind moștenirea, unde
Animalar fi clasa părinte și
Lionar fi copilul. Dar nu toate relațiile din lume sunt descrise corect în acest fel. De exemplu, o tastatură are cu siguranță o relație cu un computer, dar
nu este un computer . Mâinile au o anumită relație cu o persoană, dar nu sunt o persoană. Aceste cazuri reprezintă un alt tip de relație - nu „IS A”, ci „HAS A”. Mâinile nu sunt o persoană, ci o persoană ARE mâini. O tastatură nu este un computer, ci un computer ARE O tastatură. "ARE O"
. Diferența dintre aceste concepte constă în „strictețea” relațiilor. Să luăm un exemplu simplu: avem un
Car. Fiecare mașină are un motor. În plus, fiecare mașină poate transporta pasageri. Care este diferența fundamentală dintre câmpurile
Engine engineși
Passenger[] passengers? Dacă pasagerul
Astă în interiorul unei mașini, asta nu înseamnă că pasagerii
Bși
Cnu pot fi și în mașină. O mașină poate găzdui mai mulți pasageri. În plus, toți pasagerii pot ieși din mașină, dar aceasta va continua să funcționeze fără probleme. Relația dintre
Carclasă și
Passenger[] passengersmatrice este mai puțin strictă. Se numește
agregare . Iată un articol bun pe această temă:
Relații între clase (obiecte). Acesta oferă un alt exemplu bun de agregare. Să presupunem că avem o
Studentclasă care reprezintă un elev și o clasă
StudentGroupcare reprezintă un grup de elevi. Un student poate fi membru al unui club de fizică, al unui fan club al studenților Star Wars sau al unui club de comedie.
Compoziția este un tip mai strict de relație. La utilizarea compoziției, un obiect are un alt obiect, dar nu poate aparține altui obiect de același tip. Cel mai simplu exemplu este un motor de mașină. Dacă o mașină are un motor, atunci acel motor nu poate aparține altei mașini. După cum puteți vedea, acea relație este mult mai strictă decât cea dintre
Carși
Passengers.
![Relațiile dintre clase. Moștenirea, compunerea și agregarea - 4]()
GO TO FULL VERSION