Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Rollen
Mehrere Rollen komponieren
Eine Klasse kann mehr als eine Rolle erfüllen. Sie führen jede
einfach mit ihrem eigenen does auf:
role Walk {
method move { 'walking' }
}
role Swim {
method dive { 'diving' }
}
class Duck does Walk does Swim {
}Die Klasse Duck hat nun sowohl die Methode
move aus Walk als auch die Methode
dive aus Swim:
say Duck.new.move; # walking
say Duck.new.dive; # divingRollen auf diese Weise zu verbinden nennt man Komposition. Sie erlaubt es, eine Klasse aus mehreren unabhängigen Verhaltensbausteinen zusammenzusetzen, was oft flexibler ist, als eine einzige Vererbungskette zu bauen — eine Klasse kann genau die Fähigkeiten einmischen, die sie braucht, und nicht mehr.
Kursnavigation
← Rollen | Einem Objekt eine Rolle hinzufügen →
💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.