第一条:用静态工厂方法代替构造器

引用上面的博客总结:
考虑使用静态工厂方法代替构造器』这点,除了有名字、可以用子类等这些语法层面上的优势之外,更多的是在工程学上的意义,
我觉得它实质上的最主要作用是:能够增大类的提供者对自己所提供的类的控制力

第三个优势,可以返回原返回类型的子类

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!");
	}
}