Курс по 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

Такова съчетаване на роли се нарича композиция. То ви позволява да сглобите клас от няколко независими парчета поведение, което често е по-гъвкаво от изграждането на една-единствена верига от наследявания — класът може да смеси точно тези способности, които са му нужни, и нищо повече.

Навигация в курса

Роли   |   Добавяне на роля към обект


💪 Или преминете направо към упражненията в този раздел.