Închiderea conexiunii

Programare orientată pe obiecte cu S3 și R6 în R

Richie Cotton

Data Evangelist at DataCamp

ceainic

Programare orientată pe obiecte cu S3 și R6 în R

ceainic

Programare orientată pe obiecte cu S3 și R6 în R

 

 

 

initialize() personalizează pornirea

finalize() personalizează curățarea

Programare orientată pe obiecte cu S3 și R6 în 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") }
) )
Programare orientată pe obiecte cu S3 și R6 în 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
Programare orientată pe obiecte cu S3 și R6 în 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) }
) )
Programare orientată pe obiecte cu S3 și R6 în R

Rezumat

  • finalize() curăță după obiectele R6
  • Este util când lucrați cu baze de date
  • Este apelat în timpul colectării gunoiului
Programare orientată pe obiecte cu S3 și R6 în R

Să exersăm!

Programare orientată pe obiecte cu S3 și R6 în R

Preparing Video For Download...