Android' VelocityTracker不使用构造函数,而是如果对象引用为null,则使用variableName = VelocityTracker.obtain()
。我之前从未在Java中看到类似的东西。这是标准的设计模式,为什么要使用它?
答案 0 :(得分:2)
这是一种工厂方法。 (至少)在Android中,obtain()
是用于实现循环回收的类的传统方法名称。它们通常带有recycle()
方法,当您不再需要它时,它会在对象上运行(另一个很好的例子是Message
)。也就是说,它们跟踪对象池,并且当需要新对象时,可以调用obtain()
,它可以返回已经创建的实例,而不是为新对象分配内存。