一、什么是静态工厂方法?
静态工厂方法属于创建型设计模式中工厂模式实现的一种,当创建一个类对象时,只需要通过这个类里面的静态方法来返回这个类对象的方法,成为静态工厂方法。
二、是否应该用静态工厂方法替代构造器?
完全可以通过静态工厂方法替代构造器,下面就分析一下为什么可以
三、静态工厂方法和构造器区别
- 静态工厂方法都是通过类的私有构造来创建对象 普通创建是通过公共构造来创建
- 静态工厂方法的名称可以自定义,可以很好的标识我要创建什么 构造器只能通过类名来创建
- 静态工厂方法可以返回任何该类的子类 构造器只能返回自己所属类的类型
针对区别3代码实例:
// 子类1
public class User extends Student {
private String name;
private Integer age;
private boolean flag;
}
// 子类2
public class User1 extends Student{
private String kg;
}
public class Student {
private String sex;
private Student(){
}
public static User getInstanceUser(){
return new User();
}
public static User1 getInstanceUser1(){
return new User1();
}
}
//创建
public class Test {
public static void main(String[] args) {
User instanceUser = Student.getInstanceUser();
User1 instanceUser1 = Student.getInstanceUser1();
}
}
四、总结
通过上述分析完成可以通过静态工厂方法来替代构造器,静态工厂方法可以很好的控制自己能干什么,管理能力强,通过这种方式也可以集中管理对象,对维护很友好