Het gebruik van eerdere versies om nieuwe software te maken met behulp van de concepten van herbruikbaarheid, wordt in de programmering herbruikbare code genoemd.
Key Takeaways
- Compositie is het bouwen van complexe objecten door eenvoudigere objecten te combineren, terwijl overerving nieuwe klassen maakt van bestaande.
- Samenstelling zorgt voor meer flexibiliteit bij het wijzigen van objecten, terwijl overerving zorgt voor een meer rigide en hiërarchische structuur.
- Compositie heeft de voorkeur boven overerving, omdat het hergebruik van code bevordert, koppeling vermindert en grotere abstractie mogelijk maakt.
Samenstelling versus overerving
Compositie omvat het bouwen van complexe objecten uit eenvoudigere objecten, wat resulteert in een "heeft-een"-relatie tussen klassen. Door overerving kan de ene klasse eigenschappen en methoden van een andere overnemen, waardoor een "is-een"-relatie tot stand wordt gebracht en de herbruikbaarheid van code wordt bevorderd.
Sinds het simpel om gecompliceerde klassen te construeren met behulp van eerder gepubliceerde, goed ontworpen klassen als componenten, kan men altijd een object als een veld binnen een andere klasse gebruiken.
In OOP verwijst overerving naar het proces waarbij een entiteit de kenmerken verwerft van ander. Het is een van de meest effectieve manieren om hergebruik van code in OOP af te dwingen.
Vergelijkingstabel
Parameters van vergelijking: | Samenstelling: | Erfenis |
---|---|---|
Significantie | We declareren gewoon een type dat we in samenstelling willen gebruiken, en het kan verschillende implementaties opslaan die tijdens runtime kunnen variëren. | We definiëren de klasse die we aannemen (superklasse) bij overerving en deze kan bij uitvoering niet worden gewijzigd. |
Klasse Combineren | De mogelijkheid om functionaliteit van verschillende klassen te combineren wordt geboden door compositie. | We kunnen in dit geval slechts één klasse verlengen; met andere woorden, veel klassen kunnen niet worden uitgebreid omdat Java geen meerdere overervingen mogelijk maakt. |
Functionaliteit | Samenstelling stelt ons in staat om de functionaliteit van de klassen die we gebruiken te testen zonder dat we ons zorgen hoeven te maken of het bovenliggende of onderliggende klassen zijn. | Overerving vereist het gebruik van een bovenliggende klasse om een onderliggende klasse te testen. |
Hergebruik van code | Zelfs code uit eindklassen kan dankzij compositie worden hergebruikt. | De laatste klasse kan niet worden uitgebreid door overerving. |
Verhouding | Het is een "heeft-een" situatie. | Het is een "is-een"-situatie. |
Wat is compositie?
Een compositie is een vorm van aggregatie waarin eigendom wordt geïmpliceerd. Er is een afhankelijkheid omdat het ene object afhankelijk is van het andere. Denk aan de volgende objecten: een schoolobject en een klaslokaalobject.
Als op de een of andere manier de kenmerken van het ene object moeten worden opgenomen in de kenmerken van een ander, vereist de relatie compositie.
Compositie wordt beschreven als het gebruik van een object in een ander object. Een entiteit kan regelmatig als veld in elke klasse worden gebruikt. Bij de samenstelling gebruiken ze een entiteit die deel uitmaakt van een klasse.
Wat is erfenis?
Overerving is wanneer een nieuwe klasse de kenmerken en methoden van een bestaande klasse gebruikt. Deze reeds bestaande klasse wordt de bovenliggende klasse, superklasse of basisklasse genoemd.
Als we een nieuwe klasse willen bouwen, maar er lijkt er een te zijn met een deel van de code die we nodig hebben, kunnen we onze nieuwe klasse uit de huidige halen.
Belangrijkste verschillen tussen samenstelling en overerving
- Zelfs code van finale klassen kunnen worden hergebruikt dankzij samenstelling, terwijl de uiteindelijke klasse niet kan worden uitgebreid door overerving.
- Samenstelling is een "heeft-een" -situatie, terwijl overerving een "is-een" -situatie is.
- https://dl.acm.org/doi/abs/10.1145/2161996.2162002
- https://www.sciencedirect.com/science/article/pii/S0890540112000399
Laatst bijgewerkt: 25 juni 2023
Sandeep Bhandari heeft een Bachelor of Engineering in Computers van Thapar University (2006). Hij heeft 20 jaar ervaring op het gebied van technologie. Hij heeft een grote interesse in verschillende technische gebieden, waaronder databasesystemen, computernetwerken en programmeren. Je kunt meer over hem lezen op zijn bio pagina.
Ik waardeer dit artikel, omdat het zeer informatief is en gedetailleerde informatie geeft over samenstelling en vererving.
Ik ben het ermee eens dat de vergelijkingstabel bijzonder nuttig is om de verschillen tussen samenstelling en overerving te benadrukken.
Het onderscheid tussen 'has-a'- en 'is-a'-relaties biedt een uitgebreid begrip van compositie en overerving bij objectgeoriënteerd programmeren.
Absoluut, de 'heeft-een'- en 'is-een'-relaties bepalen werkelijk hoe compositie en overerving verbindingen tussen klassen vormen.
Het artikel presenteert effectief de belangrijkste verschillen tussen samenstelling en overerving, en biedt duidelijkheid over de verschillende kenmerken van elke benadering.
Het begrijpen van de vergelijkingsparameters tussen samenstelling en overerving is inderdaad cruciaal voor geïnformeerde besluitvorming bij softwareontwikkeling.
Het artikel legt op effectieve wijze de betekenis en functionaliteit van compositie en overerving bij programmeren uit.
Ja, het is fascinerend om te begrijpen hoe overerving de herbruikbaarheid van code in OOP bevordert.
De gedetailleerde uitleg van het artikel over samenstelling en overerving dient als een waardevolle bron voor het begrijpen van de fundamentele concepten van herbruikbaarheid van code.
Ik ben het ermee eens dat de focus van het artikel op de betekenis en relatieaspecten van compositie en overerving prijzenswaardig is.
Het concept van samenstelling en de rol ervan bij herbruikbaarheid van code wordt goed behandeld, waardoor een duidelijk inzicht wordt verkregen in de betekenis ervan bij softwareontwikkeling.
Precies, het artikel maakt effectief onderscheid hoe compositie en overerving verschillende mogelijkheden bieden voor hergebruik van code.
De praktische inzichten in de functionaliteit van compositie en overerving zijn werkelijk verhelderend.
De vergelijkingstabel demonstreert effectief de verschillen in samenstelling en overerving, waardoor de respectieve voordelen ervan in programmeerscenario's kunnen worden afgewogen.
De benadering van het artikel waarin het hergebruik van code wordt uitgelegd, zowel qua samenstelling als overerving, is lovenswaardig.
Akkoord, de praktische toepassingen van elke methode zijn duidelijk gedefinieerd, waardoor het gemakkelijker wordt om de praktische implicaties ervan te begrijpen.
Dit artikel biedt een uitgebreid overzicht van hoe compositie flexibiliteit en hergebruik van code mogelijk maakt, terwijl overerving rigide hiërarchieën tot stand brengt.
Het begrijpen van de belangrijkste inzichten helpt inderdaad bij het nemen van weloverwogen beslissingen bij het kiezen tussen samenstelling en erfenis.
De gedetailleerde uitleg en referenties van het artikel helpen bij het begrijpen van de complexe concepten van compositie en overerving bij programmeren.
De referenties in het artikel zijn waardevol voor het verder onderzoeken van het onderwerp herbruikbaarheid van code.
Ik vind het gebruik van voorbeelden uit de echte wereld om compositie en overerving te illustreren bijzonder nuttig.
Het onderscheid tussen compositie en overerving is goed verwoord, waardoor het gemakkelijker wordt om de verschillen en toepassingen ervan te begrijpen.
Absoluut, de praktische voorbeelden die in het artikel worden gegeven, vergroten het begrip van de belangrijkste concepten.
Ik waardeer de duidelijkheid bij het definiëren van de relaties die ontstaan door compositie en overerving.