是否创建了新对象? [英] new object is created or not?
问题描述
我正在阅读 Joshua Bloch 的Effective Java.它在第 1 项中让我感到困惑
I am reading Effective Java by Joshua Bloch. It confuses me in the item 1, where it states
静态工厂方法的第二个优点是,与构造函数不同,它们不需要在每次调用时都创建一个新对象.
A second advantage of static factory method is that, unlike constructors, they are not required to create a new object each time time they're invoked.
静态工厂方法不是每次调用时都会创建一个新对象吗?
Isn't the static factory method meant to create a new object each time it is invoked?
//constructor
Orange(){
}
//static factory method
static Orange staticFactoryMethod(){
return new Orange;
}
不会调用构造函数或 staticFactoryMethod
来创建 Orange
的实例吗?
Won't calling either the constructor or the staticFactoryMethod
create an instance of Orange
?
Orange orange=new Orange();
Orange orange=Orange.staticFactoryMethod();
推荐答案
静态工厂并不总是需要创建新对象.你可以有这个:
A static factory does not always need to create a new object. You can have this:
static Orange staticFactoryMethod(){
return new Orange();
}
但你也可以有类似的东西
But you can also have something like
static Orange staticFactoryMethod(){
Orange o = ... //find an orange in a basket of available oranges that has been already initialized
return o;
}
这篇关于是否创建了新对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!