第一条:用静态工厂方法代替构造器
引用上面的博客总结:
『考虑使用静态工厂方法代替构造器』这点,除了有名字、可以用子类等这些语法层面上的优势之外,更多的是在工程学上的意义,
我觉得它实质上的最主要作用是:能够增大类的提供者对自己所提供的类的控制力。
第三个优势,可以返回原返回类型的子类
public class Person {
public static Person getInstance() {
return new Player(); // 返回其子类型的实例
}
// 静态工厂方法优势:可以根据需要方便地返回任何它的子类型的实例
public static void main(String[] args) {
Person person = Person.getInstance();// 静态工厂方法创建实例
}
}
class Player extends Person { // 子类Player
public Player() {
System.out.println("this is a player!");
}
}
class Cooker extends Person {
public Cooker() {
System.out.println("this is a Cooker!");
}
} 

京公网安备 11010502036488号