Dölj komplexitet med inkapsling

Objektorienterad programmering med S3 och R6 i R

Richie Cotton

Data Evangelist at DataCamp

Objektorienterad programmering med S3 och R6 i R

Inkapsling

Objektorienterad programmering med S3 och R6 i R

Inkapsling

 

 

                                        |

implementation   |   user interface

                                        |

Objektorienterad programmering med S3 och R6 i R
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
}
)
)
Objektorienterad programmering med S3 och R6 i R

 

 

 

private$ ger åtkomst till privata element

self$ ger åtkomst till publika element

Objektorienterad programmering med S3 och R6 i R

Sammanfattning

  • Inkapsling = separation av implementation och gränssnitt
  • Lagra data i listan private
  • Lagra metoder i listan public
  • Använd private$ för åtkomst till privata element
  • ... och self$ för åtkomst till publika element
Objektorienterad programmering med S3 och R6 i R

Nu kör vi en övning!

Objektorienterad programmering med S3 och R6 i R

Preparing Video For Download...