Tắt kết nối

Lập trình hướng đối tượng với S3 và R6 trong R

Richie Cotton

Data Evangelist at DataCamp

ch5_3-Shut-it-down.003.png

Lập trình hướng đối tượng với S3 và R6 trong R

ch5_3-Shut-it-down.004.png

Lập trình hướng đối tượng với S3 và R6 trong R

 

 

 

initialize() tùy biến khởi tạo

finalize() tùy biến dọn dẹp

Lập trình hướng đối tượng với S3 và R6 trong 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") }
) )
Lập trình hướng đối tượng với S3 và R6 trong 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
Lập trình hướng đối tượng với S3 và R6 trong 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) }
) )
Lập trình hướng đối tượng với S3 và R6 trong R

Tóm tắt

  • finalize() dùng để dọn dẹp cho đối tượng R6
  • Hữu ích khi làm việc với cơ sở dữ liệu
  • Được gọi trong quá trình gom rác (garbage collection)
Lập trình hướng đối tượng với S3 và R6 trong R

Ayo berlatih!

Lập trình hướng đối tượng với S3 và R6 trong R

Preparing Video For Download...