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; # diving

Rollen 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.