使用场景及优点
1.同一类,需要创建不同意义的实例对象(不同构参),例如JDK中Executors创建ExecutorService对象:
newFixedThreadPool、newCachedThreadPool、newSingleThreadExecutor,这样“具有名字的构造函数”会是一种能够得到称赞的编程风格。
2.限制对象的创建权限,即对象的内部的创建的细节(参数、实例存在个数等)不向外开放,构造函数声明为private。
例如:单利模式、享元模式、线程池
3.降低耦合(可以返回类型的任意子类型,从而实现多态)
将分布在各个模块中的构造过程剥离,由工厂方法统一创建
4.服务提供者框架
例如:DriverManager