Item 1. 考虑用静态工厂方法替代构造器
获得一个类的实例时我们都会采取一个共有的构造器。Foo x = new Foo();
同时我们应该掌握另一种方法就是静态工厂方法(static factory method)。
一句话总结,静态工厂方法其实就是一个返回类的实例的静态方法。
书中给出的例子是Boolean的valueOf方法:
通过valueOf方法将boolean基本类型转换成了一个Boolean类型,返回了一个新的对象引用。
除valueOf外,像Java中的getInstance和newInstance等方法都为静态工厂方法。
静态工厂方法不同于设计模式中的工厂方法。
那么为什么要使用静态工厂方法呢?下面是它的几大优势:
它们有名字
给构造器起名字,增强了代码的可读性。
如果一个构造器的参数并不能确切描述它返回的对象,这时候可以考虑静态工厂方法。
或者你的多个构造器只是在参数列表中的参数顺序上有所不同,那么除非你提供了详尽的文档说明,否则你下次使用时就会一脸懵逼,这几个构造器到底要选哪个