一、工厂方法模式定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
二、工厂方法模式结构图
三、工厂方法模式实例
简单工厂模式的算法,在增加新的算法时,除了新增加算法类,同时还需要修改工厂类。
继续完善,在增加新的算法时,不修改工厂类,而是单独修改客户端。
四、简单工厂模式与工厂方法模式的对比
简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。对于客户端来说,去除了与具体产品的依赖。但是如果有增加或删除,工厂类需要做出调整,违背了开放封闭原则。而工厂方法模式把简单工厂的内部逻辑移到了客户端代码来进行。