Un module est un ensemble de processus.
#Exemple: module de calcul qui résume le traitement de l'addition et de la soustraction
module Calculate
def add(a, b)
a + b
end
def sub(a, b)
a - b
end
end
Les modules et les classes sont similaires, mais avec les différences suivantes:
Le module est utilisé aux fins suivantes.
La même classe peut être utilisée comme classe différente en la plaçant dans un module avec un nom différent.
#Exemple: inclure la même classe Image dans un autre module et différentes classes (utilisateur)::Image et message::Traiter comme une image)
module User
class Image
def self.hoge
puts 'user image'
end
end
end
module Post
class Image
def self.hoge
puts 'post image'
end
end
end
User::Image.hoge #=> "user image"
Post::Image.hoge #=> "post image"
Vous pouvez utiliser la méthode include pour inclure le traitement du module en tant que méthode d'instance de la classe cible.
#Exemple: incorporer le module User comme méthode d'instance de la classe Image
module User
def hoge
puts 'user image'
end
end
class Image
include User
end
image = Image.new
image.hoge #=> "user image"
Vous pouvez utiliser la méthode extend pour importer le traitement du module en tant que méthode de classe de la classe cible.
#Exemple: incorporer le module User comme méthode de classe de la classe Image
module User
def hoge
puts 'user image'
end
end
class Image
extend User
end
Image.hoge #=> "user image"
Recommended Posts