为什么MyClass.allocate
是Ruby中的公共方法?在什么情况下你想创建一个对象而不是在它上面运行initialize
?
答案 0 :(得分:4)
反复出现反序列化。类可以是可序列化的,但可能没有不带参数的初始化,并且该代码不需要将其初始化为某种东西,只是为了立即撤消该工作。
基本上,任何以不同方式初始化对象的情况,除了典型情况外,将这两个步骤分开是有用的。
答案 1 :(得分:0)
有时你想“避免”初始化方法,如果你想因某种原因而短路(例如:Time.allocate可能比获得实时对象“更快”)