Comece agoraComece grátis

Re-Reescrevendo as Capacidades de Cozimento

Depois que classes intermediárias expõem a funcionalidade do pai com active bindings super_, você pode acessar métodos ao longo de várias gerações de classes R6. A sintaxe é

parent_method <- super$method()
grand_parent_method <- super$super_$method()
great_grand_parent_method <- super$super_$super_$method()

Este exercicio faz parte do curso

Programação Orientada a Objetos com S3 e R6 em R

Ver curso

Instruções do exercicio

As classes de forno de micro-ondas e de forno de micro-ondas sofisticado já foram definidas para você no seu workspace. Uma string ascii_pizza_slice também foi predefinida.

  • Explore as outras fábricas de fornos de micro-ondas imprimindo seus nomes.
  • Defina um gerador de classe HighEndMicrowaveOven usando R6Class() (docs) e atribua-o a high_end_microwave_oven_factory.
    • Ele deve herdar de FancyMicrowaveOven.
    • Ele deve ter um elemento de lista public.
  • Sobrescreva o método público cook().
    • O método deve receber um único argumento chamado time_seconds.
    • Ele deve chamar o método cook() de MicrowaveOven, …
    • e então exibir uma fatia de pizza usando message(ascii_pizza_slice) (docs).
  • Instancie um objeto de forno de micro-ondas high-end e atribua-o a a_high_end_microwave.
  • Chame o método cook() de a_high_end_microwave para cozinhar por um segundo.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Explore other microwaves
microwave_oven_factory
fancy_microwave_oven_factory

# Define a high-end microwave oven class
high_end_microwave_oven_factory <- ___(
 "___",
  ___ = ___,
  ___ = ___(
    ___ = ___
    
    
    
  )
)

# Instantiate a high-end microwave oven
a_high_end_microwave <- ___

# Use it to cook for one second
___
Editar e Executar Código