静态工厂代替构造器
1.静态工厂方法提供一个类似单例模式下获取类实例的方法来返回类的实例,此种方法代替了传统类的构造方法,那么其优势有四点:{
a 静态工厂方法有名称
b 不必在每次调用他们的时候都创建一个新的对象
c 他们可以返回类型的任何子类型的对象
d 在创建参数化类型的时候使代码更加简洁
}
其缺点在于:
1.类如果使用静态工厂方法取代构造器(共有的,受保护的)就不能被子类化。这里的子类化就是说:本使用静态工厂替代构造器提供实例对象的类A,不能作为父类被其他类继承
2.静态工厂方法与其他静态方法没啥子区别,如果一个类采用静态工厂方法为外部用户提供类的实例而不是构造方法。这种设计在没有开发文档的情况下让开发者查明本类该如何实例化是非常困难的。所以,我们为静态工厂方法拟定了一些惯用名称
valueOf(类型转换方法)
of 基本同上
getInstance (单例)----newInstance(返回不同实例)
getType ----- newType 一般用于指定返回实例的何种具体实现类型