mezclas de ruby

Antes de estudiar sobre Ruby Mixins, debemos tener el conocimiento sobre conceptos orientados a objetos. Si no lo hacemos, revise Conceptos orientados a objetos en Ruby . Cuando una clase puede heredar características de más de una clase principal, se supone que la clase tiene herencia múltiple. Pero Ruby no admite la herencia múltiple directamente y, en su lugar, utiliza una función llamada mixin. Mixins en Ruby permite que los módulos accedan a métodos de instancia de otro utilizando el método de inclusión .
Mixins proporciona una forma controlada de agregar funcionalidad a las clases. El código en el mixin comienza a interactuar con el código en la clase. En Ruby, un código envuelto en un módulo se llama mixins que una clase puede incluir o extender. Una clase consta de muchos mixins.

A continuación se muestra el ejemplo de Ruby Mixins.
Ejemplo 1:

# Ruby program of mixins
  
# module consist 2 methods
module G
    def g1
   end
   def g2
   end
end
  
# module consist 2 methods
module GFG
   def gfg1
   end
   def gfg2
   end
end
  
# Creating a class
class GeeksforGeeks
include G
include GFG
   def s1
   end
end
  
# Creating object
gfg = GeeksforGeeks.new
  
# Calling methods
gfg.g1
gfg.g2
gfg.gfg1
gfg.gfg2
gfg.s1

Aquí, el módulo G consta de los métodos g1 y g2. El módulo GFG consta de los métodos gfg1 y gfg2. La clase GeeksforGeeks incluye los módulos G y GFG. La clase GeeksforGeeks puede acceder a los cuatro métodos, a saber, g1, g2, gfg1 y gfg2. Por lo tanto, podemos ver que la clase GeeksforGeeks hereda de ambos módulos. Por lo tanto, podemos decir que la clase GeeksforGeeks muestra mixin.

Considere el siguiente ejemplo para aclaración.
Ejemplo #2:

# Modules consist a method
module Child_1
  def a1
   puts 'This is Child one.'
  end
end
module Child_2
  def a2
   puts 'This is Child two.'
  end
end
module Child_3
  def a3
   puts 'This is Child three.'
  end
end
  
# Creating class
class Parent
  include Child_1
  include Child_2
  include Child_3
  def display
   puts 'Three modules have included.'
  end
end
  
# Creating object
object = Parent.new
  
# Calling methods
object.display
object.a1
object.a2
object.a3

Producción

Three modules have included.
This is Child one.
This is Child two.
This is Child three.

En el ejemplo anterior, el módulo Child_1 consiste en el método a1, de manera similar, el módulo Child_2 y Child_3 consisten en los métodos a2 y a3. La clase Parent incluye los módulos Child_1, Child_2 y Child_3. La clase Parent también incluye una visualización de métodos. Como podemos ver, la clase Parent hereda de los tres módulos. la clase Parent muestra herencia múltiple o mixin.

Publicación traducida automáticamente

Artículo escrito por Rohit_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *