java.util.Currency真的是工厂方法模式吗?

时间:2014-12-18 12:22:03

标签: java

java.util.currency包含以下列表:

private static HashMap<String, Currency> instances = new HashMap<String, Currency>(7);

然后方法getInstance()返回具有以下条件的实例:

Currency instance = instances.get(currencyCode);
   if (instance != null) {
      return instance;
}

我想知道它的设计模式是什么?为什么?这是工厂方法吗?

3 个答案:

答案 0 :(得分:2)

这是 Factory 方法模式的典型实现,其中不可变实例被缓存和重用(“memoized”)。

答案 1 :(得分:0)

工厂方法的使用允许对象的受控创建和生命周期,可能来自子类。正如Marko Topolnik指出的那样,该方法不需要返回Currency的新实例。

该代码段中提供的技巧是通过其区域设置(或货币代码)进行Currency缓存。由于相同语言环境的货币相同,因此无需创建多个对象。

答案 2 :(得分:-1)

它看起来像一个Singleton模式,它是为了确保你只有一个类的实例