java - 静态工厂方法问题!

标签 java methods static factory

在这个网站中,它说每次都不会创建一个新对象,这会提高效率,但据我所见,每次都在静态方法中创建一个对象..

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/

相关文章:

opencv - 在 Pandas 板上使用静态链接进行 OpenCV 编译的问题

java - 覆盖匿名类的 tostring

java - 复制实体集合并持久保存在 Hibernate/JPA 中

java - 检查字符串是否为回文(使用方法)

java - java中的百分比函数

java - 以前凌乱的任务仍然有一些我不明白的错误

python - Python 是否允许一个类方法有多个输入参数?

java - 静态函数返回错误值?

Java if() 不工作

java - 检测 JSpinner 何时达到最大限制?