En aquest tema, explorarem els mòduls i els mixins en Ruby. Els mòduls són una manera de grups de mètodes, constants i altres mòduls. Els mixins permeten compartir funcionalitats entre classes sense utilitzar herència múltiple.
Què és un Mòdul?
Un mòdul és una col·lecció de mètodes i constants. Els mòduls no poden ser instanciats com les classes, però poden ser inclosos en altres classes per compartir funcionalitats.
Creació d'un Mòdul
Incloure un Mòdul en una Classe
Per incloure un mòdul en una classe, utilitzem la paraula clau include.
class Persona include Salutacions end persona = Persona.new persona.dir_hola # Sortida: Hola! persona.dir_adeu # Sortida: Adeu!
Mòduls com a Espais de Noms
Els mòduls també es poden utilitzar per organitzar el codi en espais de noms, evitant conflictes de noms.
module Matematiques
PI = 3.14159
def self.circumferencia(radi)
2 * PI * radi
end
end
puts Matematiques::PI # Sortida: 3.14159
puts Matematiques.circumferencia(10) # Sortida: 62.8318Mixins
Els mixins són una manera de compartir funcionalitats entre classes sense utilitzar herència múltiple. Això es fa incloent mòduls en classes.
Exemple de Mixin
module Caminable
def caminar
puts "Estic caminant!"
end
end
class Animal
include Caminable
end
class Robot
include Caminable
end
animal = Animal.new
robot = Robot.new
animal.caminar # Sortida: Estic caminant!
robot.caminar # Sortida: Estic caminant!Mètodes de Classe en Mòduls
Els mòduls també poden definir mètodes de classe utilitzant self.
module Utilitats
def self.dia_actual
Time.now.strftime("%A")
end
end
puts Utilitats.dia_actual # Sortida: (el dia actual de la setmana)Exercicis Pràctics
Exercici 1: Crear un Mòdul
Crea un mòdul anomenat Calculadora amb mètodes per sumar, restar, multiplicar i dividir dos nombres. Inclou aquest mòdul en una classe anomenada Matematica i utilitza els mètodes.
module Calculadora
def sumar(a, b)
a + b
end
def restar(a, b)
a - b
end
def multiplicar(a, b)
a * b
end
def dividir(a, b)
a / b
end
end
class Matematica
include Calculadora
end
mat = Matematica.new
puts mat.sumar(5, 3) # Sortida: 8
puts mat.restar(5, 3) # Sortida: 2
puts mat.multiplicar(5, 3) # Sortida: 15
puts mat.dividir(6, 3) # Sortida: 2Exercici 2: Mòduls com a Espais de Noms
Crea un mòdul anomenat Geometria amb una constant PI i un mètode area_cercle que calculi l'àrea d'un cercle donat el seu radi.
module Geometria
PI = 3.14159
def self.area_cercle(radi)
PI * radi ** 2
end
end
puts Geometria::PI # Sortida: 3.14159
puts Geometria.area_cercle(5) # Sortida: 78.53975Resum
En aquest tema, hem après sobre els mòduls i els mixins en Ruby. Els mòduls ens permeten organitzar el codi en espais de noms i compartir funcionalitats entre classes. Els mixins són una manera poderosa de compartir mètodes entre classes sense utilitzar herència múltiple. Hem vist com crear mòduls, incloure'ls en classes i utilitzar-los com a espais de noms. També hem practicat aquests conceptes amb exercicis pràctics.
Curs de Programació en Ruby
Mòdul 1: Introducció a Ruby
Mòdul 2: Conceptes Bàsics de Ruby
Mòdul 3: Treballant amb Col·leccions
Mòdul 4: Programació Orientada a Objectes en Ruby
- Classes i Objectes
- Variables i Mètodes d'Instància
- Variables i Mètodes de Classe
- Herència
- Mòduls i Mixins
Mòdul 5: Conceptes Avançats de Ruby
- Blocs, Procs i Lambdas
- Metaprogramació
- Gestió d'Excepcions
- Entrada/Sortida de Fitxers
- Expressions Regulars
Mòdul 6: Introducció a Ruby on Rails
- Què és Ruby on Rails?
- Configuració de l'Entorn Rails
- Creació d'una Aplicació Simple en Rails
- Arquitectura MVC
- Rutes
Mòdul 7: Proves en Ruby
- Introducció a les Proves
- Proves Unitàries amb Minitest
- Desenvolupament Basat en Comportament amb RSpec
- Mocking i Stubbing
Mòdul 8: Millors Pràctiques en Ruby
- Estil de Codi i Convencions
- Refactorització
- Optimització del Rendiment
- Millors Pràctiques de Seguretat
