Wann verwenden Sie ein Modul, und wenn Sie zu einer Klasse

Ich bin momentan durch die Gregory Brown Ruby Best Practices Buch. Früh auf, er spricht über die Umgestaltung einige Funktionen von helper-Methoden, auf eine Verwandte Klasse, einige Methoden, Modul, dann hatte das Modul extend self.

Hatte nicht gesehen, dass vor, nach einer schnellen google, fand heraus, dass extend self auf einem Modul definierten Methoden, die auf dem Modul sehen, was Sinn macht.

Nun, meine Frage ist, Wann würde Sie so etwas tun

module StyleParser
  extend self

  def process(text)
    ...
  end

  def style_tag?(text)
    ...
  end
end

und dann finden Sie es in tests mit

@parser = Prawn::Document::Text::StyleParser

als Gegensatz zu etwas wie diesem?

class StyleParser

  def self.process(text)
    ...
  end

  def self.style_tag?(text)
    ...
  end
end 

ist es so, dass Sie können verwenden Sie es als ein mixin? oder gibt es andere Gründe, die ich nicht sehe?

InformationsquelleAutor Matt Briggs | 2010-04-19
Schreibe einen Kommentar