如何将一堆实例变量从一个对象添加到另一个对象?Ruby:将实例变量添加到对象
例如,想象您拥有基础机器人的机器人,您可以使用附加软件对其进行自定义。
class Robot def initialize @name = "simple robot" @power = nil #no power @speed = nil # more attributes end def add_attributes(addon) @power = addon.power @speed = addon.speed #the rest of the attributes that addon has end end
我想重新写add_attributes
方法简单地遍历每个插件的属性,而不是写他们都一个接一个的,原因可能有几十个属性。
一些插件可能有Robot没有的实例变量,我也想将它们添加到Robot中。就像在飞行中创建实例变量一样?
我真的不喜欢窥视到附加的实例变量是这样的。一个插件应该提供一个统一的方式来获取它的属性列表,然后可以调用该方法。 (当然,对于给定的信息,你有什么可能是最好的解决方案。) –