Was ist ein Ruby-Modul?

Was ist ein Modul?

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

Unterschied zwischen Modul und Klasse

Module und Klassen sind ähnlich, jedoch mit folgenden Unterschieden:

Verwendung des Moduls

Das Modul wird für folgende Zwecke verwendet.

Bereitstellung eines Namespace

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"

Als Instanzmethode in die Klasse integrieren

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"

Als Klassenmethode in die Klasse integrieren

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"

Zusammenfassung

Recommended Posts

Was ist ein Ruby-Modul?
Was ist ein zweidimensionales Ruby-Array?
Was ist ein Konstruktor?
Was ist ein Stream?
Was ist ein Servlet?
Was ist eine Wrapper-Klasse?
Was ist ein boolescher Typ?
Was ist ein Gleitkomma?
Was ist ein aussagekräftiger Kommentar?
Was ist eine JAR-Datei?
Was ist eine Java-Sammlung?
Was ist ein Lambda-Ausdruck?
[Ruby] Wofür wird `!!` verwendet?
[Ruby] Was ist eine Instanz?
Was ist Fat⁉ enum?
Was ist ein sicherer Referenzoperator (&.), Der Ruby Ampasand verwendet?
Was ist ein Ausschnitt in der Programmierung?
Was ist ein Boolescher Spaltentyp?
Was ist eine Referenztypvariable?
Was ist ein Lambda-Ausdruck (Java)
Was ist Cubby?
Was ist null? ]]
Was ist eine Spring Boot-Originaldatei?
Was ist java
Was ist Schlüsselumhang?
Was ist Maven?
[Technischer Hinweis] Was ist "include" in Ruby?
Was ist Jackson?
[Für Programmieranfänger] Was ist eine Methode?
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist params
Was ist SLF4J?
Was ist eine Klasse in der Java-Sprache (2 /?)
Was ist Fassade? ??
Was ist Java <>?
Was ist Gradle?
Was ist POJO?
Was ist java
Was ist centOS?
Was ist RubyGem?
[Rails] Was ist ein Punkt (.) Oder ein Doppelpunkt (:)?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
Einführung in rekursive Funktionen: Was ist eine rekursive Funktion?
Ruby Sum ist eine nüchterne und erstaunliche Geschichte
Über Rubys Kernel-Modul
Was ist Maven Assembly?
Was ist Docker-Compose?