Összetétel és összesítés
Az osztályok és az objektumok kapcsolatban lehetnek egymással. Az öröklődés egy „IS A” kapcsolatot ír le. Az oroszlán egy állat. Ez a kapcsolat könnyen kifejezhető örökléssel, ahol
Animal
a szülő osztály és
Lion
a gyermek lenne. De nem minden kapcsolat van így megfelelően leírva a világon. Például a billentyűzetnek határozottan van kapcsolata a számítógéppel, de
nem számítógép . A kezek valamilyen kapcsolatban állnak egy személlyel, de nem személy. Ezek az esetek más típusú kapcsolatot jelentenek – nem „IS A”, hanem „HAS A”. A kéz nem személy, hanem az embernek VAN keze. A billentyűzet nem számítógép, de a számítógépnek VAN billentyűzete. "VAN EGY"
. A különbség ezek között a fogalmak között a kapcsolatok „szigorában” rejlik. Vegyünk egy egyszerű példát: Van egy
Car
. Minden autónak van motorja. Ezenkívül minden autó szállíthat utasokat. Mi az alapvető különbség a
Engine engine
és
Passenger[] passengers
mezők között? Ha az utas
A
az autóban ül, az nem jelenti azt, hogy az utasok
B
sem
C
tartózkodhatnak az autóban. Egy autóban több utas is elfér. Sőt, az összes utas kiszállhat az autóból, de továbbra is zavartalanul fog működni.
Car
Az osztály és a tömb közötti kapcsolat
Passenger[] passengers
kevésbé szigorú.
Aggregációnak hívják . Itt van egy jó cikk a témában:
Osztályok (objektumok) közötti kapcsolatok. Ez egy másik jó példa az aggregációra. Tegyük fel, hogy van egy
Student
osztályunk, amely egy tanulót, és egy
StudentGroup
tanulócsoportot képvisel. Egy diák lehet tagja egy fizika klubnak, egy Star Wars hallgatói rajongói klubnak vagy egy komikus klubnak.
A kompozíció szigorúbb kapcsolattípus. Kompozíció használatakor egy objektumnak van egy másik objektuma, de nem tartozhat egy másik, azonos típusú objektumhoz. A legegyszerűbb példa egy autómotor. Ha egy autónak van motorja, akkor az nem tartozhat másik autóhoz. Amint látja, ez a kapcsolat sokkal szigorúbb, mint a
Car
és a
Passengers
.
GO TO FULL VERSION