用封装隐藏复杂性

R 中的 S3 与 R6 面向对象编程

Richie Cotton

Data Evangelist at DataCamp

R 中的 S3 与 R6 面向对象编程

封装

R 中的 S3 与 R6 面向对象编程

封装

 

 

                                        |

实现   |   用户界面

                                        |

R 中的 S3 与 R6 面向对象编程
microwave_oven_factory <- R6Class(
  "MicrowaveOven",
  private = list(
    power_rating_watts = 800,

door_is_open = FALSE
),
public = list(
open_door = function() {
private$door_is_open <- TRUE
}
)
)
R 中的 S3 与 R6 面向对象编程

 

 

 

private$ 访问私有元素

self$ 访问公有元素

R 中的 S3 与 R6 面向对象编程

小结

  • 封装 = 将实现与界面分离
  • 数据存放在 private 列表中
  • 方法存放在 public 列表中
  • private$ 访问私有元素
  • ...self$ 访问公有元素
R 中的 S3 与 R6 面向对象编程

让我们练习!

R 中的 S3 与 R6 面向对象编程

Preparing Video For Download...