假设我有一个ObjectInfo类,其中包含对象名称和对象类型为String。(为了提出问题,我只是在做一些事情。)
class ObjectInfo {
String objectName;
String objectType;
private ObjectInfo(String objectName, String objectType) {
this.objectName = objectName;
this.objectType = objectType;
}
}
而且,如果我想提供一个静态工厂方法来创建此类的实例,那么以下两种方法中的哪一种更好,为什么?
public static ObjectInfo newInstance(String objectName, String objectType) {
return new ObjectInfo(objectName, objectType)
}
public static ObjectInfo valueOf(String objectName, String objectType) {
return new ObjectInfo(objectName, objectType)
}
基本上,我想问的是何时应该使用valueOf()和何时newInstance()?程序员社区之间是否有任何约定?
-安 git
最佳答案
public static ObjectInfo newObjectInfo(String objectName, String objectType)
对于静态工厂方法,我将使用上述命名约定。如果方法使用者要使用静态导入,这将很有用:
import static foo.ObjectInfo.newObjectInfo;
//....
ObjectInfo info = newObjectInfo(foo, bar);
您可以看到此模式in the Guava API。