在这个网站中,它说每次都不会创建一个新对象,这会提高效率,但据我所见,每次都在静态方法中创建一个对象..
do not need to create a new object upon each invocation - objects can be cached and reused, if necessary.
http://www.javapractices.com/topic/TopicAction.do?Id=21
那么为什么静态工厂方法如此高效?
不是写这样的东西:Object obj=new Object 和我做的一样 Object obj=Someclass.GetObj();
class Someclass
{
public static Object GetObj()
{
return new Object
}
}
有缓存,但无论如何都会创建一个新对象...
最佳答案
对象可以被缓存和重用。他们并不总是这样。还有许多其他优点,例如:
- 更好的方法命名
- 返回子类
Effective Java 中有一个相关内容,所以请继续阅读它。无论如何,这本书是必读的。
更新:正如我所说,对象可以被缓存。但这取决于实现。您显示的不会缓存它们。 Peter 展示的那个缓存了它们。你有这个选择。使用构造函数 - 你不需要。
关于java - 静态工厂方法问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5551720/