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.8318
Mixins
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: 2
Exercici 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.53975
Resum
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