工厂方法的模式用意定义一个创建产品对象的工厂接口,将实际创建工作延迟到具体的工厂子类中,一般性结构图,如下:
从上图可以看出,工厂方法模式有抽象工厂角色、具体工厂角色、抽象产品角色及具体产品角色等角色:
抽象工厂角色:担任这个角色的是工厂方法模式的核心。它与应用程序无关。任何在模式中创建对象的工厂类必须实现该接口
具体工厂角色:担任这个角色的是实现了抽象工厂接口的具体java类。具体工厂角色包含与应用密切相关的逻辑,并且受到应用程序的调用以创建产品对象
抽象产品角色:工厂方法模式所创建对象的超类型,也就是产品对象的共同父类
具体产品角色:实现抽象产品角色所声明的接口