静态工厂方法是一种封装对象创建的方法,可以通过静态工厂方法创建对象。
简单的说就是将构造对象的语句封装到类中。如下:
通常创建对象的方式是用new语句调用类的构造方法:
Employee e1 = new Employee();
封装后的静态工厂方法:
public class Employee {
public static Employee create(String id) {
Employee e1 = null;
switch (id) {
case 1:
e1 = new EmployeeTest();
break;
case 2:
e2 = new EmployeeSalary();
break;
}
return e1;
}
}
这样就可以直接调用静态工厂方法创建对象:
Employee e1 = Employee.create(1);
这样做有几个优点:
- Java 的构造函数都是跟类名一样,而使用静态工厂方法,可以给方法起更多有意义的名字
- 不用每次被调用时都创建新对象
- 构造方法只能返回确切的自身类型,而静态工厂方法则能够更加灵活,可以根据需要方便地返回任何它的子类型的实例。