Вчимося готувати
Третій аргумент функції R6Class() зветься public і містить функціональність, з якою працює користувач. Цей аргумент має бути списком із назвами для кожного з його елементів.
Елемент public класу R6 містить функціональність, доступну користувачеві. Зазвичай він містить лише функції.
Оновлений шаблон створення генератора класу R6 такий:
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Do something here
}
)
)
Ця вправа є частиною курсу
Об'єктно-орієнтоване програмування з S3 та R6 в R
Інструкції до вправи
Фабрику мікрохвильових печей частково визначено для вас.
- Оновіть елемент
publicу визначенні, додавши методcook. - Створіть об'єкт мікрохвильової печі з назвою
a_microwave_oven, використавши методnew()фабрикиmicrowave_oven_factory. - Викличте метод
cook()об'єктаa_microwave_ovenна 1 секунду.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Add a cook method to the factory definition
microwave_oven_factory <- R6Class(
"MicrowaveOven",
private = list(
power_rating_watts = 800
),
public = list(
___ = ___(___) {
___
___
}
)
)
# Create microwave oven object
a_microwave_oven <- ___
# Call cook method for 1 second
___