Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Lomas

Vairāku lomu apvienošana

Klase var darīt vairāk nekā vienu lomu. Vienkārši uzskaitiet katru ar savu does:

role Walk {
    method move { 'walking' }
}

role Swim {
    method dive { 'diving' }
}

class Duck does Walk does Swim {
}

Klasei Duck tagad ir gan metode move no Walk, gan metode dive no Swim:

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

Šādu lomu apvienošanu sauc par komponēšanu. Tā ļauj klasi salikt no vairākiem neatkarīgiem uzvedības gabaliem, un tas bieži ir elastīgāk nekā būvēt vienu mantošanas ķēdi — klase var iemaisīt tieši tās spējas, kas tai vajadzīgas, un neko vairāk.

Kursa navigācija

Lomas   |   Lomas pievienošana objektam


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.