设计模式:工厂方法模式
什么是工厂方法模式?
工厂方法模式(英语:Factory Method Pattern)的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行”。

一句话归纳
只对结果负责,封装过程对象。

代码示例
我在Car类中定义了车的一些基本属性和行为,在其子类BMW类和Benz类里写各自的属性和行为的区别;定义了一个关于Car类的工厂接口,在其实现类里的方法返回不同的车型,以后我再卖一个新车系列时候,只需要创建一个Car的子类和相对应的工厂类即可。

适用性
以下场景我建议你考虑使用:
面向接口编程;
创建对象需要大量重复的代码或默认值;
创建对象的生命周期必须集中管理,比如Spring的BeanFactory;
创建对象可能是在一个池子里,不是每次都创建新的,比如线程池、连接池;
客户端(应用层)不依赖于产品类实例如何被创建、实现等细节;
一个类通过其子类来指定创建哪个对象。

局限性
以下场景我建议你谨慎使用:
重构现有的类时会破坏现有的代码,毕竟以前是用构造器,现在用工厂方法;
简单对象创建不建议使用,避免把简单问题复杂化;
工厂方法所实例化的类具有私有的构造方法,所以这些类就不能扩展了;
确实扩展了工厂方法所实例化的类,子类必须具有所有工厂方法的一套实现。

写在最后
最后,好兄弟,记得点赞,关注,谢谢。
