第一条:用静态工厂方法代替构造器
引用上面的博客总结:
『考虑使用静态工厂方法代替构造器』这点,除了有名字、可以用子类等这些语法层面上的优势之外,更多的是在工程学上的意义,
我觉得它实质上的最主要作用是:能够增大类的提供者对自己所提供的类的控制力。
第三个优势,可以返回原返回类型的子类
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!"); } }