为什么工厂方法用于创建日历实例

时间:2014-11-12 10:20:33

标签: java factory-pattern java.util.calendar

想了解更多有关Calendar.getInstance()的信息。我可以使用constroctor创建Date实例,但为什么不是Calendar实例呢?为什么Calendar设计为使用工厂方法以及为什么它是抽象类。

请分享背后的原因。

我的问题非常简单: 如果我们在Date类上有新的运算符,为什么不为Calender。静态方法创建实例背后的想法是什么。

非常感谢,

1 个答案:

答案 0 :(得分:3)

有不同的Calendar实现。 Calendard.getInstance()对语言环境敏感,并返回默认语言环境所在国家/地区的合适实现。

文档说:“返回的日历基于默认时区的当前时间和默认语言环境。”

根据源代码,您可以获得一个BuddhistCalendar用于语言“th”和国家“TH”或日本日本帝国日历用变体“JP”。否则你得到一个GregorianCalendar实例。

您可以使用其构造函数创建GregorianCalendar实例。