Apprendre à cuisiner
Le troisième argument de R6Class() s’appelle public et contient les fonctionnalités destinées à l’utilisateur de l’objet. Cet argument doit être une liste, avec des noms pour chacun de ses éléments.
L’élément public d’une classe R6 regroupe les fonctionnalités accessibles à l’utilisateur. En général, il ne contient que des fonctions.
Le modèle mis à jour pour créer un générateur de classe R6 est le suivant :
thing_factory <- R6Class(
"Thing",
private = list(
a_field = "a value",
another_field = 123
),
public = list(
do_something = function(x, y, z) {
# Do something here
}
)
)
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
Une fabrique de four à micro-ondes a été partiellement définie pour vous.
- Mettez à jour l’élément
publicde la définition pour y inclure une méthodecook.- La méthode
cookest une fonction. - Elle doit avoir un argument nommé
time_secondspour indiquer la durée de cuisson. - Dans le corps de la méthode
cook, vous devez passertime_secondsàSys.sleep()(docs), qui ne fait rien pendant la durée indiquée. - Enfin, la méthode
cookdoitprint()(docs) la chaîne"Your food is cooked!"
- La méthode
- Créez un objet four à micro-ondes appelé
a_microwave_ovenà l’aide de la méthodenew()demicrowave_oven_factory. - Appelez la méthode
cook()dea_microwave_ovenpendant 1 seconde.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
___