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;
}
我想知道它的设计模式是什么?为什么?这是工厂方法吗?
答案 0 :(得分:2)
这是 Factory 方法模式的典型实现,其中不可变实例被缓存和重用(“memoized”)。
答案 1 :(得分:0)
工厂方法的使用允许对象的受控创建和生命周期,可能来自子类。正如Marko Topolnik指出的那样,该方法不需要返回Currency
的新实例。
该代码段中提供的技巧是通过其区域设置(或货币代码)进行Currency
缓存。由于相同语言环境的货币相同,因此无需创建多个对象。
答案 2 :(得分:-1)
它看起来像一个Singleton模式,它是为了确保你只有一个类的实例