工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
工厂方法与简单工厂的不同之处是,工厂方法的层次比简单工厂多了一层,在工厂方法里边,先定义一个抽象的工厂接口,然后再定义具体的工厂来实现这个接口。
这样做的的话,再添加新的具体水果的话,就又可以定义一个相应的工厂(要实现最顶端的抽象工厂接口)就可以了。由这个工厂来负责新水果的实例化。