[设计模式]工厂方法模式
一、简介
1、名称:工厂方法模式又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂模式
2、功能:定义一个用于创建对象的接口,让子类的决定实例化哪一个类。Factory Method使一个类实例化延迟到子类。
3、实现方式:核心工厂不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
4、意义:工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现“开-闭原则”,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。
三、参与者
1、抽象工厂(Creator)类角色:工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。
2、具体工厂(ConcreteCretor)类角色:实现抽象工厂的具体类工厂,包含于应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象。
3、抽象产品(Product):工厂方法模式创建的对象的超类型,也就是产品对象的共同父类或接口。
4、具体产品(ConcreteProduct)角色:实现抽象产品角色定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应。