Ein Modul ist eine Sammlung von Prozessen.
#Beispiel: Berechnen Sie das Modul, das die Verarbeitung von Addition und Subtraktion zusammenfasst
module Calculate
def add(a, b)
a + b
end
def sub(a, b)
a - b
end
end
Module und Klassen sind ähnlich, jedoch mit folgenden Unterschieden:
Das Modul wird für folgende Zwecke verwendet.
Dieselbe Klasse kann als andere Klasse verwendet werden, indem sie in ein Modul mit einem anderen Namen eingefügt wird.
#Beispiel: Fügen Sie dieselbe Image-Klasse in ein anderes Modul und verschiedene Klassen ein (Benutzer)::Bild und Post::Als Bild behandeln)
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"
Mit der include-Methode können Sie die Verarbeitung des Moduls als Instanzmethode der Zielklasse einbeziehen.
#Beispiel: Integrieren Sie das Benutzermodul als Instanzmethode der Image-Klasse
module User
def hoge
puts 'user image'
end
end
class Image
include User
end
image = Image.new
image.hoge #=> "user image"
Mit der Extend-Methode können Sie die Verarbeitung des Moduls als Klassenmethode der Zielklasse importieren.
#Beispiel: Integrieren Sie das Benutzermodul als Klassenmethode der Image-Klasse
module User
def hoge
puts 'user image'
end
end
class Image
extend User
end
Image.hoge #=> "user image"
Recommended Posts