天天看点

effective-java 之 考虑使用静态工厂方法替代构造方法

优点:

1.可以有自己的名字;

2.不用每次调用是创建一个新对象;

3.可以返回任何类型的子类;

4.返回类型可以根据传入参数不同而不同;

5.返回对象的类不需要存在;

缺点:

1.没有公共或受保护构造方法的类不能被子类化;

2.程序员很难找到它们;

示例:

public static Boolean valueOf(boolean b) {
    return b ? Boolean.TRUE : Boolean.FALSE;
}