Sammensætning og aggregering
Klasser og objekter kan relateres til hinanden. Arv beskriver et "IS A"-forhold. En løve ER ET dyr. Dette forhold er let udtrykt ved hjælp af arv, hvor
Animalville være forældreklassen og
Lionville være barnet. Men ikke alle forhold i verden er korrekt beskrevet på denne måde. For eksempel har et tastatur bestemt et forhold til en computer, men
det er ikke en computer . Hænder har et eller andet forhold til en person, men de er ikke en person. Disse tilfælde repræsenterer en anden type forhold — ikke "ER A", men "HAS A". Hænder er ikke en person, men en person HAR hænder. Et tastatur er ikke en computer, men en computer HAR ET tastatur. "HAR EN"
. Forskellen mellem disse begreber ligger i relationernes "strenghed". Lad os tage et simpelt eksempel: Vi har en
Car. Hver bil har en motor. Derudover kan hver bil transportere passagerer. Hvad er den grundlæggende forskel mellem felterne
Engine engineog
Passenger[] passengers? Hvis passageren
Asidder inde i en bil, betyder det ikke, at passagererne
Bikke
Cogså kan være i bilen. En bil kan rumme flere passagerer. Desuden kan alle passagerer komme ud af bilen, men den vil fortsætte med at fungere problemfrit. Forholdet mellem
Carklassen og
Passenger[] passengersarrayet er mindre strengt. Det kaldes
aggregering . Her er en god artikel om dette emne:
Relationer mellem klasser (objekter). Det giver endnu et godt eksempel på sammenlægning. Lad os sige, at vi har en
Studentklasse, der repræsenterer en elev, og en
StudentGroup, der repræsenterer en gruppe elever. En studerende kan være medlem af en fysikklub, en Star Wars-studenterfanklub eller en komedieklub.
Komposition er en strengere type forhold. Når du bruger komposition, har et objekt et andet objekt, men det kan ikke tilhøre et andet objekt af samme type. Det enkleste eksempel er en bilmotor. Hvis en bil har en motor, så kan den motor ikke tilhøre en anden bil. Som du kan se, er det forhold meget strengere end det med
Carog
Passengers.
![Relationer mellem klasser. Arv, sammensætning og sammenlægning - 4]()
GO TO FULL VERSION