public class MySingleton{
private static final MySingleton INSTANCE = new MySingleton();
private MySingleton(){}
public static getInstance(){
return INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
这是实现Singleton的正确方法吗?如果是,那么final关键字的必要性是什么?
并不是真的有必要。但使用final时它不能被单例类本身重置,这强制了一个真正的单例。然而,由于单例是不好的做法,因此可以通过添加 setInstance() 方法使它们可用于单元测试。焦虑的人可以将 setInstance 定义为私有,以便单元测试通过反射调用 setInstance。
| 归档时间: |
|
| 查看次数: |
9016 次 |
| 最近记录: |