【发布时间】:2015-04-18 08:23:03
【问题描述】:
我被困在这里,因为我担心从父类调用子类的类方法是否是最佳实践?
module Zoo
class Animals
class << self
def update
if self.whatever == ... # Calls method 'whatever' from Tiger class
# do sth.
end
end
end
end
class Tiger < Animals
def update
super
end
class << self
def whatever
"whatever from tiger class"
end
end
end
end
Zoo::Tiger.update
它有效,但我希望有任何更好的解决方案来解决这个问题。与某些自定义 hack 不同,我想尽可能遵循最佳实践解决方案。
提前致谢!
【问题讨论】:
-
您在
Tiger中的update方法永远不会被调用。Tiger的单例类继承了Animals的单例类中定义的方法。
标签: ruby oop inheritance