第一条,考虑用静态工厂方法代替构造器
优点一:静态工厂可以很好的理解名称
四个构造方法,面对这样的构造方法,三个、四个是可以接受的,那如果是七个八个甚至是十几个呢?这个时候有一个好的名字就是十分重要,比如书上提到的返回素数的方法名称:BigInteger.probablePrime(),这样的名称就可以很好地区分构建实例的用途,可读性也更强。
优点二:不必每次调用它们的时候都创建一个新的对象
类StaticFactoryDemo在初始化的时候会缓存10个对象到ArrayList中,可以实习对象的复用,这里只说大概意思,具体对象池、对象工厂实现可以参考Integer、Spring的IOC。
优点三:它们可以返回原返回类型的任何子类型的对象