4.4.4 Factory方法

    静态方法还有一种常见的用途。NumberFormat类使用factory产生不同风格的格式对象。

  
  
  
  
  1. NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance(); 
  2. NumberFormat percentFormatter = NumberFormat.getPercentInstance(); 
  3. double x = 1.0
  4. System.out.println(currencyFormaatter.format(x));    //prints $0.10 
  5. System.out.println(percentFormatter.format(x));    //prints 10% 

    为什么NumberFormat类不利用构造器完成这些操作呢?这主要有两个原因:

  • 无法命名构造器。构造器的名字必须与类同名。但是,这里希望得到的货币实例和百分比实例采用不同的名字。
  • 当使用构造器时,无法改变所构造的对象类型。而Factory方法将返回一个DecimalFormat类的对象,这是NumberFormat的子类(有关继承的详细内容请参看第五章)。

你可能感兴趣的:(Java核心技术I)