Učíme se vařit
Třetím argumentem funkce R6Class() je public – obsahuje funkcionalitu objektu přístupnou uživateli. Tento argument by měl být seznam, kde každý prvek má svůj název.
Element public třídy R6 obsahuje vše, co má uživatel k dispozici. Zpravidla zahrnuje pouze funkce.
Aktualizovaný vzor pro vytvoření generátoru třídy R6 vypadá takto:
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Do something here
}
)
)
Toto cvičení je součástí kurzu
Objektově orientované programování s S3 a R6 v R
Pokyny k cvičení
Továrna na mikrovlnné trouby je pro tebe částečně připravená.
- Doplň element
publicv definici o metoducook.- Metoda
cookje funkce. - Měla by mít jeden argument
time_secondsudávající dobu vaření. - V těle metody
cookpředejtime_secondsfunkciSys.sleep()(dokumentace), která po zadanou dobu nic nedělá. - Nakonec by metoda
cookměla pomocíprint()(dokumentace) vypsat řetězec"Your food is cooked!".
- Metoda
- Vytvoř objekt mikrovlnné trouby s názvem
a_microwave_ovenpomocí metodynew()továrnymicrowave_oven_factory. - Zavolej metodu
cook()objektua_microwave_ovens dobou vaření 1 sekunda.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
___