ПочатиПочніть безкоштовно

Понадперевизначення можливостей приготування

Коли проміжні класи відкривають функціональність батьків за допомогою активних привʼязок super_, ви можете звертатися до методів через кілька «поколінь» класів R6. Синтаксис такий

parent_method <- super$method()
grand_parent_method <- super$super_$method()
great_grand_parent_method <- super$super_$super_$method()

Ця вправа є частиною курсу

Об'єктно-орієнтоване програмування з S3 та R6 в R

Переглянути курс

Інструкції до вправи

Класи мікрохвильової печі та «просунутої» мікрохвильової печі вже підготовлено у вашому робочому середовищі. Рядок ascii_pizza_slice також попередньо визначено.

  • Ознайомтеся з іншими «фабриками» мікрохвильових печей, вивівши їхні назви.
  • Визначте генератор класу HighEndMicrowaveOven за допомогою R6Class() (docs) і присвойте його змінній high_end_microwave_oven_factory.
    • Він має успадковуватися від FancyMicrowaveOven.
    • Він має містити елемент списку public.
  • Перевизначте публічний метод cook().
    • Метод має приймати єдиний аргумент з назвою time_seconds.
    • Він має викликати метод cook() класу MicrowaveOven, …
    • а потім показати скибку піци, використавши message(ascii_pizza_slice) (docs).
  • Створіть екземпляр обʼєкта «високорівневої» мікрохвильової печі та присвойте його змінній a_high_end_microwave.
  • Викличте метод cook() у a_high_end_microwave, щоб готувати одну секунду.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
Редагувати та запускати код