Spegni tutto

Programmazione orientata agli oggetti con S3 e R6 in R

Richie Cotton

Data Evangelist at DataCamp

ch5_3-Shut-it-down.003.png

Programmazione orientata agli oggetti con S3 e R6 in R

ch5_3-Shut-it-down.004.png

Programmazione orientata agli oggetti con S3 e R6 in R

 

 

 

initialize() personalizza l’avvio

finalize() personalizza la chiusura

Programmazione orientata agli oggetti con S3 e R6 in 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") }
) )
Programmazione orientata agli oggetti con S3 e R6 in 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
Programmazione orientata agli oggetti con S3 e R6 in 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) }
) )
Programmazione orientata agli oggetti con S3 e R6 in R

Riepilogo

  • finalize() ripulisce dopo gli oggetti R6
  • Utile quando si lavora con database
  • Viene chiamata durante la garbage collection
Programmazione orientata agli oggetti con S3 e R6 in R

Passiamo alla pratica !

Programmazione orientata agli oggetti con S3 e R6 in R

Preparing Video For Download...