Delen via


Insluiting/delegatie

Het meest voorkomende mechanisme voor het hergebruik van objecten in COM is insluiting/delegatie. Dit type hergebruik is een bekend concept dat wordt gevonden in de meeste objectgeoriënteerde talen en systemen. Het buitenste object, dat gebruik moet maken van het binnenste object, fungeert als een objectclient voor het binnenste object. Het buitenste object bevat het binnenste object en wanneer het buitenste object de services van het binnenste object vereist, wordt de implementatie expliciet gedelegeerd aan de methoden van het binnenste object. Dat wil gezegd, het buitenste object maakt gebruik van de services van het binnenste object om zichzelf te implementeren.

Het is niet nodig voor de buitenste en binnenste objecten om dezelfde interfaces te ondersteunen, hoewel het zeker redelijk is om een object te bevatten dat een interface implementeert die het buitenste object niet implementeert en de methoden van het buitenste object gewoon als aanroepen naar de bijbehorende methoden in het binnenste object implementeert. Wanneer de complexiteit van de buitenste en binnenste objecten sterk verschilt, kan het buitenste object echter enkele van de methoden van de interfaces implementeren door aanroepen naar interfacemethoden die in het binnenste object zijn geïmplementeerd, te delegeren.

Het is eenvoudig om insluiting te implementeren voor een buitenste object. Het buitenste object maakt de binnenste objecten die moeten worden gebruikt als elke andere client. Dit is niets nieuws: het proces is vergelijkbaar met een C++-object dat zelf een C++ tekenreeksobject bevat dat wordt gebruikt om bepaalde tekenreeksfuncties uit te voeren, zelfs als het buitenste object niet als een tekenreeksobject op zichzelf wordt beschouwd. Vervolgens genereert een aanroep naar een methode in het buitenste object met behulp van de aanwijzer naar het binnenste object een aanroep naar een binnenste objectmethode.

Aggregatie-