Sammansättning och aggregering

Klasser och objekt kan relateras till varandra. Arv beskriver ett "IS A"-förhållande. Ett lejon ÄR ETT djur. Detta förhållande uttrycks lätt med hjälp av arv, där Animalskulle vara förälderklassen och Lionskulle vara barnet. Men inte alla relationer i världen beskrivs korrekt på detta sätt. Till exempel har ett tangentbord definitivt ett förhållande till en dator, men det är inte en dator . Händer har någon relation med en person, men de är inte en person. Dessa fall representerar en annan typ av relation — inte "ÄR A", utan "HAR A". Händer är inte en person, men en person HAR händer. Ett tangentbord är inte en dator, men en dator HAR ett tangentbord. "HAR EN". Skillnaden mellan dessa begrepp ligger i relationernas "strikthet". Låt oss ta ett enkelt exempel: Vi har en Car. Varje bil har en motor. Dessutom kan varje bil bära passagerare. Vad är den grundläggande skillnaden mellan Engine engineoch Passenger[] passengersfälten? Om passagerare Asitter inne i en bil, betyder det inte att passagerare Boch Cinte också kan vara i bilen. En bil kan ta emot flera passagerare. Dessutom kan alla passagerare komma ur bilen, men den kommer att fortsätta att fungera smidigt. Relationen mellan Carklassen och Passenger[] passengersarrayen är mindre strikt. Det kallas aggregering . Här är en bra artikel om detta ämne: Relationer mellan klasser (objekt). Det ger ett annat bra exempel på aggregering. Låt oss säga att vi har en Studentklass som representerar en elev och en StudentGroupsom representerar en grupp elever. En student kan vara medlem i en fysikklubb, en Star Wars-studentfanklubb eller en komediklubb. Komposition är en striktare typ av relation. När man använder komposition har ett objekt ett annat objekt, men det kan inte tillhöra ett annat objekt av samma typ. Det enklaste exemplet är en bilmotor. Om en bil har en motor kan den motorn inte tillhöra en annan bil. Som du kan se är det förhållandet mycket strängare än det för Caroch Passengers.Relationer mellan klasser.  Arv, sammansättning och aggregering - 4