在
Java中,我们使用静态初始化块:
private static final ApiKey API_KEY; static { API_KEY = new ApiKey(); }
我在想,
>这是一个很好的编程实践吗?
>我们应该在哪里使用这种模式?
提前致谢.
解决方法
在某种程度上这是一个味道的问题.对我来说,只要有以下优点:
你按照你所做的那样,保持最后的位置
>您确保引用的对象是ummable和线程安全的
静态学倾向于使写作更好的测试变得更加困难.如果您发现要开始修改静态,那么您可能需要再次查看设计.
考虑看看Google Guice和它非常好的Singleton implementation.
当然,如果你的应用程序是一个10行的单一类实验,那么这很重要.
请注意,在您的示例中,您可以简化为:
private static final ApiKey API_KEY = new ApiKey();
这并不总是可能的.也许你已经省略了一些更复杂的初始化代码?在这种情况下,Guice再次值得一看.