1. Learn
  2. /
  3. Courses
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

Exercise

평가값 읽기

R6 객체가 저장하는 데이터는 private 요소에 보관되어 사용자에게서 의도적으로 숨깁니다. 이는 캡슐화(encapsulation) 원칙입니다.

데이터 값에 접근할 수 있도록 하려면 액티브 바인딩(active binding)을 사용할 수 있어요. 액티브 바인딩은 변수처럼 동작하는 함수입니다.

액티브 바인딩은 R6 객체의 active 요소에 저장됩니다. 비공개 데이터 필드를 가져오는(즉, "읽기 전용") 액티브 바인딩을 만들려면, 인자가 없고 비공개 요소를 그대로 반환하는 함수를 정의하면 됩니다.

읽기 전용 액티브 바인딩을 만드는 패턴은 다음과 같습니다:

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

액티브 바인딩은 함수가 아니라 데이터 변수처럼 호출합니다.

a_thing <- thing_factory$new()
a_thing$a_field   # a_thing$a_field() 가 아님

Instructions

100 XP

전자레인지 공장(factory)이 일부 정의되어 있습니다.

  • 전력 등급을 가져오는 읽기 전용 액티브 바인딩을 포함하도록 정의를 업데이트하세요.
    • 액티브 바인딩 이름은 power_rating_watts여야 합니다.
    • 인자 없는 함수로 정의하세요.
    • 본문은 비공개 필드 ..power_rating_watts를 그대로 반환해야 합니다.
  • 전자레인지 객체를 생성해 a_microwave_oven에 할당하세요.
  • 전력 등급을 읽어 보세요.