- 该类是抽象的,因为它是Java中每种数字格式的基类(
DecimalFormat
例如,包括)。拥有一个本质上未知的数字格式的构造函数是毫无用处的。 - 该
getInstance()
方法是所谓的工厂方法。它返回当前语言环境的匹配数字格式。由于尚不知道在编译时需要哪种子类,因此它返回aNumberFormat
,但是 实例 本身显然是子类型的(因为您无法创建抽象类的实例)。 - 这种设计使您能够灵活 地以某种方式 确定适当的子类实例,以在运行时返回,而不必在设计/编译时使设计过于僵化。静态方法免于抽象,因此类可以作为工厂 和 抽象超类用于具体实现。如果不是这种情况,您可能会有一个
NumberFormatFactory
可以使用工厂方法的地方。



