Fermer le tout

Programmation orientée objet avec S3 et R6 en R

Richie Cotton

Data Evangelist at DataCamp

ch5_3-Shut-it-down.003.png

Programmation orientée objet avec S3 et R6 en R

ch5_3-Shut-it-down.004.png

Programmation orientée objet avec S3 et R6 en R

 

 

 

initialize() personnalise le démarrage

finalize() personnalise le nettoyage

Programmation orientée objet avec S3 et R6 en R
thing_factory <- R6Class(
  "Thing",
  private = list(
    ..a_field = 123
  ),
  public = list(

initialize = function(a_field) { if(!missing(a_field)) { private$a_field = a_field } },
finalize = function() { message("Finalizing the Thing") }
) )
Programmation orientée objet avec S3 et R6 en R

 

a_thing <- thing_factory$new()
rm(a_thing)
gc()
Finalizing the Thing
         used (Mb) gc trigger (Mb) max used (Mb)
Ncells 443079 23.7     750400 40.1   592000 31.7
Vcells 718499  5.5    1308461 10.0  1092342  8.4
Programmation orientée objet avec S3 et R6 en R
library(RSQLite)
database_manager_factory <- R6Class(
  "DatabaseManager",
  private = list(

conn = NULL
), public = list(
initialize = function(a_field) { private$conn <- dbConnect("some-database.sqlite") },
finalize = function() { dbDisconnect(private$conn) }
) )
Programmation orientée objet avec S3 et R6 en R

Résumé

  • finalize() effectue le nettoyage après les objets R6
  • Utile lors du travail avec des bases de données
  • Appelée durant la collecte des ordures
Programmation orientée objet avec S3 et R6 en R

Passons à la pratique !

Programmation orientée objet avec S3 et R6 en R

Preparing Video For Download...