工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
对比简单工厂模式,工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现 Product 类,选择判断的问题还是存在,只不过工厂方法把简单工厂的内部逻辑判断移到了客户端代码进行。符合开放-封闭原则。
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
对比简单工厂模式,工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现 Product 类,选择判断的问题还是存在,只不过工厂方法把简单工厂的内部逻辑判断移到了客户端代码进行。符合开放-封闭原则。