对象的创建与销毁
ITEM1 使用静态工厂方法代替构造函数
传统的新建一个对象的方法是通过构造函数:
Foo foo =new Foo();
一个类也可以提供一个静态方法产生一个对象:
Boolean flag=Boolean.valueOf(b);
这两种方法都可以产生一个对象,但是什么时候应该使用哪种方法?两种方法分别有什么优点和缺点呢?
对于使用静态方法产生一个对象来说:
1.静态方法可以自定义方法名
静态方法更能够通过方法名描述所返回的对象
有时候一个类包含多个构造函数,并且每个构造函数所产生的对象会稍微有些差别。那么使用静态方法产生一个对象是一个非常好的选择。
看以下代码:
BigInteger bigIntege=new BigInteger(int,int,Random);
如果不查看这个构造函数的文档,我们并不知道这个构造函数会返回一个具体什么样的BigInteger给我们。
但是:
BigInteger bigInteger=BigInteger.probablePrime(int,Random);
就能直接看出来,这样会产生一个素数对象。
PS:别过度使用静态方法,例如:
public class Base64{ public Base64 initByString(); public Base64 initByByte(); public Base64 initByInteger(); }
适当使用重载能让代码更简洁,也更方便使用。