1.考虑用静态工厂方法代替构造器
优点:
静态工厂方法有名称,当一个类有多个相同签名的构造器时,以静态工厂方法替代之,并使用有意义的名称。
不必每次调用它们的时候都创建一个新对象。
可以返回原返回类型的任何子类型的对象。
创建参数化类型实例时,代码更简洁。
缺点:
类如果不含公有的或者保护的构造器,就不能被子类化。
静态工厂方法与其他静态方法没有任何区别,对于提供了静态工厂方法而不是构造器的类来说,难以查明如何实例化。
弥补措施,使用惯用名:
valueOf——类型转换
of——类型转换
getInstance——返回唯一实例
newInstance——返回新实例
getType——与getInstance同,在工厂方法处于不同类中时使用,Type表示所返回的对象类型。
newType——与newInstance同,在工厂方法处于不同类中时使用,Type表示所返回的对象类型。