Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Ruoli

Comporre più ruoli

Una classe può assumere più di un ruolo. Basta elencarli ciascuno con il proprio does:

role Walk {
    method move { 'walking' }
}

role Swim {
    method dive { 'diving' }
}

class Duck does Walk does Swim {
}

Ora la classe Duck ha sia il metodo move di Walk sia il metodo dive di Swim:

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

Combinare ruoli in questo modo si chiama composizione. Ti permette di assemblare una classe a partire da più pezzi di comportamento indipendenti, il che è spesso più flessibile che costruire una singola catena di ereditarietà: una classe può mescolare esattamente le capacità che le servono, e niente di più.

Ruoli   |   Aggiungere un ruolo a un oggetto


💪 Oppure vai direttamente agli esercizi di questa sezione.