Módulos y mixins en Ruby
Compartir comportamiento entre clases sin herencia.
# un módulo guarda comportamiento; include lo mezcla en cualquier clase
module Greetable
def greet
"hi, I am #{display_name}"
end
end
class Robot
include Greetable
def initialize(id)
@id = id
end
def display_name
"unit-#{@id}"
end
end
puts Robot.new(7).greet
Cómo funciona
- Un módulo define métodos sin una clase propia.
includemezcla el módulo en una clase como métodos de instancia.- El mixin llama a
display_name, que la clase anfitriona provee.
Palabras clave y builtins usados aquí
classdefendidmoduleputs
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 262
- Tokens
- 45
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 32 segundos.
Paso 3 de 3 en Clases y módulos; paso 21 de 29 en Fundamentos del lenguaje.