Also machte ich ein einzelnes Programm mit einer Klasse, die eine Anzahl von Klassen enthielt, aber ich dachte, es wäre besser organisiert, es in mehrere Programme aufzuteilen, eins für jede Unterklasse. Wäre dies eine bessere Möglichkeit, meinen Code zu organisieren, und wirkt sich dies auf die Leistung aus?Verschachtelte Klassen in verschiedenen Dateien mit Vererbung
Und wie würde ich diesen Code in zwei Dateien teilen? Das Hauptprogramm würde die Texty-Klasse haben, und ich müsste irgendwie die String-Klasse aus einer anderen Datei einschließen, aber Sie können keine Klassen in Ruby einschließen, also wie würde dies geschehen, während auch die Vererbung von Texty beibehalten wird? Und wie würde ich auf die Instanzvariable @inst_var
von der anderen Datei zugreifen?
class Texty
def initialize
@inst_var = 0
end
def texty_method
puts 'Bar'
end
class String < Texty
def output(string)
puts string
end
end
end
Texty::String.new.output('Foo')
Nesting-Klassen wie diese erzeugen keine Beziehung zwischen Texty und String. Sie können die String-Klasse (ich würde einen anderen Namen dafür wählen) in eine eigene Datei ziehen, Texty direkt vor der Deklaration anfordern und das gleiche Ergebnis beibehalten, das Sie jetzt erhalten. –
Nun ... Nicht ganz das Gleiche, weil Sie auf String außerhalb des Texty-Namensraums verweisen würden, aber ich denke, Sie haben das Bild bekommen. –
Kann ich auf diese Weise weiterhin auf die Instanzvariablen in Texty zugreifen? (Von String) –