Effetive Java系列笔记均为Effective Java(第三版) 读书笔记和总结
1.用静态工厂方法代替构造器
静态工厂方法(返回类的实例的静态方法)
Boolean
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
静态工厂方法相较于构造器的优势
- 有名称
构造器(BigInteger(int,int,Random)
):
public BigInteger(int bitLength, int certainty, Random rnd) {
BigInteger prime;
if (bitLength < 2)
throw new ArithmeticException("bitLength < 2");
prime = (bitLength < SMALL_PRIME_THRESHOLD
? smallPrime(bitLength, certainty, rnd)
: largePrime(bitLength, certainty, rnd));
signum = 1;
mag = prime.mag;
}
静态工厂(BigInteger.probablePrime(int,Random)
):
public static BigInteger probablePrime(int bitLength, Random rnd) {
if (bitLength < 2)
throw new ArithmeticException("bitLength < 2");
return (bitLength < SMALL_PRIME_THRESHOLD ?
smallPrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd) :
largePrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd));
}
对比来看:
①静态方法能够确切的描述返回对象
②更容易使用
③产生的客户端代码更易于阅读
- 不必在每次调用时都创建一个新对象
- 返回原类型的任何子类型的对象
- 所返回的对象的类可以随着每次调用而发生变化,这取决于静态工厂方法的参数值
- 方法返回的对象所属的类,在编写包含改静态工厂方法的类时可以不存在
网友评论