这怎么能工作?访问父类实例变量
class A
attr_accessor :name
def initialize params
@name = params[:name]
@collection << B.new
end
end
class B < A
def initialize
@my_name = lookup_something(<parent.name>)
end
end
基本上,我需要一个值从父类的子类中查找使用,但我不想明确地传递,如果有一个更好的办法。父类的实例var在子类中完全无法访问?或者这仅仅是糟糕的层次结构设计?
很好的答案,除了一件事:改变子类的构造函数的签名是完全正确的。这是因为当你实例化时,你总是知道你正在处理的是什么课。因此,构造函数不需要考虑多元模型。 (显着的例外:您可能希望对构造,当你在做的元编程,或者你建立某种神奇的工厂相同/相似的界面。) – Franz 2016-08-03 09:45:51
你是一种权利有关的构造特征 - 它们是O.K.改变。这并不意味着拥有完全不同的基类和子类构造函数_behaviour_是很好的。 – averell 2016-08-23 09:53:24