在java中,一说到创建实例,自然就会想到构造器(构造函数),这是最简单也是最常用的创建实例的办法。
然而,还有一种方法,那就是让类提供一个静态工厂方法 ,它只是一个返回类的实例的方法。
总而言之,使用静态工厂方法的优势&劣势如下:
[优势]
1.静态工厂方法有名称。
2.不必在每次调用都创建一个新对象。
3.可以返回原返回类型的任何子类型对象。
4.在创建参数化类型实例的时候,可以使代码变得更加简洁。
[劣势]
1.类如果不包含共有的或者受保护的构造器,就不能被子类化。
2.它们与其他静态方法并没有实际区别。
下面是静态工厂方法的一些惯用名称:
valueOf
of
getInstance
newInstance
getType
newType