2014-08-30 114 views
0

使用DateFormat子类的正确方法是什么?要显式实例化它或使用其定义类的静态方法之一?DateFormat:创建一个新实例或调用子类getInstance()方法?

此外,SimpleDateFormat的文档中,有关同步的,它指出:

同步

日期格式不同步。建议使用 为每个线程创建单独的格式实例。如果多个 线程同时访问一个格式,则它必须在外部同步 。

那么,单线程应用程序中最好的方法是什么?而在多线程的?每个线程的新实例,还是一个访问同步的公共实例?
在后者中,我猜想分享模式并在需要时创建新实例会更好,但我希望您的建议。

+0

肯定这取决于用例是什么。 – 2014-08-30 10:19:59

+0

@OliCharlesworth当我需要一个方法中的单个实例,或者当我想跨方法共享一个模式(所以是日期格式化程序)时。如果使用工厂方法总是更好,我不能得到javadocs。这让我感到困惑。 – watery 2014-08-30 10:22:05

+0

你不能明确地实例化它;这是一个抽象类。 – 2014-08-30 10:28:12

回答

1

作为一个经验法则:

  • 单线程:你可以重用你的DateFormat实例

  • Mutithread环境:每次创建新实例,你使用它

+0

好。所以你不建议在任何情况下使用* DateFormat子类get * Instance()方法? – watery 2014-08-30 10:22:58

+0

如果你想使用系统默认值,是的。如果你想显式格式声明,使用构造函数 – 2014-08-30 10:27:02

相关问题