我想知道我是否正确地实现了Ruby对象的重新初始化。重新初始化一个Ruby对象
我有一个叫Clipboard
的类来保存文件夹和文件。当创建一个新的剪贴板对象时,它总是空的:它上面没有文件夹或文件。我也有一个reset
方法,它清除剪贴板中的所有文件夹和文件。
起初,我的代码看起来很喜欢这个:
class Clipboard
def initialize
@folders = []
@files = []
end
def reset
@folders = []
@files = []
end
end
但事实上,reset
和initialize
是完全一样的让我生气。除了重新设置剪贴板对象与重新初始化它相同之外。所以我改变了我的代码:
class Clipboard
def initialize
@folders = []
@files = []
end
def reset
initialize
end
end
这工作,但我想知道如果是打算约我重新初始化对象的正确方法是什么?有什么理由不应该从实例方法调用initialize
?谢谢!
我基本上都是给出的答案;而不是针对他们,但是如果我按照上面建议的方法行事,我会更进一步,并且'别名重设初始化',甚至直接调用'初始化'而不是重置。准确地说,答案中的措词,'initialize'不是一个构造函数。它是一个由构造函数调用的实例方法。 – sawa 2011-04-21 03:44:39
感谢您澄清更多。 – Mischa 2011-04-21 04:19:06