【发布时间】:2017-07-07 11:43:38
【问题描述】:
所以我制作了一个程序,其中一个类包含多个类,但我认为将其拆分为多个程序会更有条理,每个子类一个程序。这会是组织代码的更好方法吗?这会影响性能吗?
我将如何将此代码拆分为两个文件?主程序将具有 Texty 类,我需要以某种方式从另一个文件中包含 String 类,但是您不能在 Ruby 中包含类,那么如何在保持从 Texty 继承的同时做到这一点?以及如何从另一个文件访问实例变量@inst_var?
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')
【问题讨论】:
-
这样的嵌套类不会在 Texty 和 String 之间创建任何类型的关系。您可以将 String 类(我会为此选择另一个名称)拉到它自己的文件中,在它声明之前需要 Texty 并保持您现在得到的相同结果。
-
嗯...不太一样,因为您将在 Texty 命名空间之外引用 String,但我认为您明白了。
-
我还能以这种方式访问 Texty 中的实例变量吗? (来自字符串)
标签: ruby class inheritance inner-classes instance-variables