Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Rollen

Meerdere rollen samenstellen

Een klasse kan meer dan één rol doen. Je somt ze eenvoudig op, elk met een eigen does:

role Walk {
    method move { 'walking' }
}

role Swim {
    method dive { 'diving' }
}

class Duck does Walk does Swim {
}

De klasse Duck heeft nu zowel de methode move uit Walk als de methode dive uit Swim:

say Duck.new.move; # walking
say Duck.new.dive; # diving

Rollen zo combineren heet compositie. Het laat je een klasse samenstellen uit meerdere onafhankelijke stukken gedrag, wat vaak flexibeler is dan één keten van overerving bouwen — een klasse kan precies de mogelijkheden binnenhalen die ze nodig heeft, en niets meer.

Cursusnavigatie

Rollen   |   Een rol aan een object toevoegen


💪 Of ga direct naar de oefeningen in deze sectie.