1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Lập trình hướng đối tượng với S3 và R6 trong R

Connected

Bài tập

Đọc chỉ số công suất

Dữ liệu do một đối tượng R6 lưu trữ được cố ý ẩn khỏi người dùng bằng cách đặt trong phần tử private. Đây là nguyên tắc đóng gói (encapsulation).

Nếu bạn muốn cung cấp quyền truy cập vào bất kỳ giá trị dữ liệu nào, bạn có thể dùng active binding. Đây là các hàm hoạt động như biến.

Active binding được lưu trong phần tử active của một đối tượng R6. Để tạo một active binding nhằm lấy một trường dữ liệu private (tức là binding "chỉ đọc"), bạn tạo một hàm không có đối số và chỉ đơn giản trả về phần tử private đó.

Mẫu để tạo một active binding chỉ đọc như sau:

thing_factory <- R6Class(
  "Thing",
  private = list(
    ..a_field = "a value"
  ),
  active = list(
    a_field = function() {
      private$..a_field
    }
  )
)

Active binding được gọi như một biến dữ liệu, không phải như một hàm.

a_thing <- thing_factory$new()
a_thing$a_field   # không phải a_thing$a_field()

Hướng dẫn

100 XP

Một factory cho lò vi sóng đã được định nghĩa một phần cho bạn.

  • Cập nhật định nghĩa để bao gồm một active binding chỉ đọc nhằm lấy chỉ số công suất.
    • Active binding này nên được đặt tên là power_rating_watts.
    • Nó được định nghĩa là một hàm, không có đối số.
    • Phần thân chỉ cần trả về trường private ..power_rating_watts.
  • Tạo một đối tượng lò vi sóng và gán vào a_microwave_oven.
  • Đọc chỉ số công suất của nó.