Item 1: Consider static factory methods instead of constructors
是用静态工厂方法,而不是构造器,是因为工作方法有方法名,二构造器没有,工作方法可以描述方法作用,可读性比较好
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
另外使用工厂方法,有时候不一定每次都生成新的对象,而使用构造器会,有时候不用重复生成新的对象,可以提高程序性能
还可以返回子类对象。灵活性更高
工作方法的返回值对象,可以通过参数调用其他函数,进行不同的调用返回不同的对象
返回值对象的方法可以不需要如果对象的方法可以被写
还有一些限制就是,工厂方法没有 public 或者 protected 构造器,可以继承,和不容易被发现调用