为什么Class#在Ruby中分配一个公共方法?

时间:2011-02-20 12:26:19

标签: ruby object

为什么MyClass.allocate是Ruby中的公共方法?在什么情况下你想创建一个对象而不是在它上面运行initialize

2 个答案:

答案 0 :(得分:4)

反复出现反序列化。类可以是可序列化的,但可能没有不带参数的初始化,并且该代码不需要将其初始化为某种东西,只是为了立即撤消该工作。

基本上,任何以不同方式初始化对象的情况,除了典型情况外,将这两个步骤分开是有用的。

答案 1 :(得分:0)

有时你想“避免”初始化方法,如果你想因某种原因而短路(例如:Time.allocate可能比获得实时对象“更快”)