Matikan

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Richie Cotton

Data Evangelist at DataCamp

ch5_3-Shut-it-down.003.png

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

ch5_3-Shut-it-down.004.png

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

 

 

 

initialize() menyesuaikan startup

finalize() menyesuaikan pembersihan

Pemrograman Berorientasi Objek dengan S3 dan R6 di 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") }
) )
Pemrograman Berorientasi Objek dengan S3 dan R6 di 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
Pemrograman Berorientasi Objek dengan S3 dan R6 di 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) }
) )
Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Ringkasan

  • finalize() melakukan pembersihan untuk objek R6
  • Berguna saat bekerja dengan database
  • Dipanggil saat garbage collection
Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Ayo berlatih!

Pemrograman Berorientasi Objek dengan S3 dan R6 di R

Preparing Video For Download...