一. 工厂方法模式(Factory Method)
工厂方法模式是简单工厂方法模式的衍生,它的核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,使得系统可以在不修改具体工厂角色的情况下引用新的产品。
在这个模式中,一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品。
工厂方法模式是最典型的模板方法模式(Template Method Pattern)应用。
该模式中包含的角色及职责:
抽象工厂角色:工厂方法模式的核心,任何在模式中创建的对象的工厂必须实现这个接口。
具体工厂角色:实现抽象工厂接口的具体工厂类,包含应用程序的逻辑。
抽象产品角色:产品对象的共同父类或共同拥有的接口。
具体产品角色:实现了抽象产品角色定义的接口,其具体产品有专门的具体工厂创建。
使用场景:
对于某个产品,调用者清楚知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来;
只是需要一种产品,对于那个工厂生产的并不关心,最终选用哪个具体工厂由生产者一方决定,它根据当前系统的情况来实例化一个具体的工厂返回给使用者,这个决策过程对于使用者来说是透明的。
1.抽象工厂角色
2.具体工厂角色
3.抽象产品角色
4.具体产品角色
5.测试类
6.测试结果