好奇让我问这个问题。我想知道用什么来实例化一个类。
我可以使用构造函数执行此操作:
public ExampleClass(someParameters){}
,或者我可以使用公共静态方法执行此操作:
public static ExampleClass getInstance(someParameters){return new ExampleClass}
我个人喜欢使用静态方法来实例化一个类,因为它看起来更干净,可以通过这种方式实例化一个类。但是,我真的很感激一些支持的意见,因为我只是一个想要编写更专业的代码的业余爱好者。
答案 0 :(得分:2)
所以你的问题是你应该使用静态工厂方法吗?在适当的时候使用它们。例如,他们可以使用of
或create
等名称。因此,它们可以命名为(与必须与类名称相同的构造函数不同)。
然后你可以返回一个子类型,或者缓存一个对象 - 你不能用普通的构造函数来做。
答案 1 :(得分:1)
从Effective Java一书中,Joshua Block认为,与普通的旧构造函数相比,创建对象的静态工厂方法更好。优点包括
与构造函数不同,它们具有名称
与构造函数不同,它们不需要在每次调用时都创建新对象
与构造函数不同,它们可以返回其任何子类型的对象 返回类型
它们减少了创建参数化类型实例的详细程度
缺点: