好处:
1.静态工厂函数是有名字的,而且可以是很好的表示的名字。如构造函数BigInteger(int,int,Random)可能返回素数。我们可以给他增加一个静态工厂方法名为:BigInteger.probablePrime()这个方法已经加入到1.4版本中了。
2.比构造方法好的是,每次静态工厂被调用不一定非要去实例对象。因为你可以使用单例模式结合静态工厂,造一个static的存储区或是一个缓存区域把你已经造好的对象存放起来,在静态工厂中进行判断存储区中是否有这个对象,然后如果有就使用存储区的,如果没有才造一个出来。这个适合单例模式。
3.静态工厂的第3个好处是你可以返回原返回对象的子类型对象,这个就体现了面向接口编程的思想。增加了扩展性。看具体需求。