获得一个类的实例的传统方法是公共的构造方法,还可以提供一个公共的静态工厂方法(一个返回值为该类实例的简单静态方法),
例如Boolean(boolean 的封装类)
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
此方法将boolean的原始值转变成Boolean对象的引用。
注意:这里的静态工厂方法与设计模式中的工厂方法不一样。静态工厂方法有优缺点。
优点:①与构造方法相比,静态工厂方法有名称。构造方法的参数本身没有描述被返回的对象,这时,静态工厂可以有一个很好的名字,使得使用者很好的阅读和使用。例如构造方法Constructor BigInteger(int, int, Random),返回一个可能是素数的大数,使用工厂方法BigInteger.probalePrime()可以更好的描述,这个方法在java1.4被加入到BigInteger类中。
②与构造方法比,静态工厂方法不需要在每次被调用的时候创建新的对象。
③可以返回的对象更丰富(返回对象的类或其子类)
④