如何將一堆實例變量從一個對象添加到另一個對象?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中。就像在飛行中創建實例變量一樣?
我真的不喜歡窺視到附加的實例變量是這樣的。一個插件應該提供一個統一的方式來獲取它的屬性列表,然後可以調用該方法。 (當然,對於給定的信息,你有什麼可能是最好的解決方案。) –