Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Ролі

Композиція кількох ролей

Клас може виконувати більш ніж одну роль. Ви просто перелічуєте кожну з власним does:

role Walk {
    method move { 'walking' }
}

role Swim {
    method dive { 'diving' }
}

class Duck does Walk does Swim {
}

Клас Duck тепер має і метод move із Walk, і метод dive із Swim:

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

Таке поєднання ролей називають композицією. Воно дозволяє скласти клас із кількох незалежних частин поведінки, що часто гнучкіше за побудову єдиного ланцюжка успадкування: клас може підмішати рівно ті можливості, які йому потрібні, і нічого більше.

Навігація курсом

Ролі   |   Додавання ролі об’єкту


💪 Або перейдіть одразу до вправ цього розділу.