调用者不必关心对象创建的具体过程,只需要提需求,由工厂模式负责产出对象。达到了隐藏对象创建的细节的目的。

    让需求和建造过程分离。

    分为三种更加细分的类型:简单工厂、工厂方法、抽象工厂

    工厂根据调用者的参数,或配置文件,动态实例化不同的对象 (具有相当父类的同一系列对象)。

    工厂的‘参变量’来源:

    1. 方法参数
    2. xml 配置文件
    3. 其它配置文件,如 json 等

    工厂中往往使用‘反射机制’来解析‘参变量’,以用于动态实例化对象。

    工厂模式的作用是,隐藏实例创建的复杂度,提供一个简单清晰的接口。
    如 vue 源码中的创建异步组件。

    image.png