java工厂方法模式

一. 工厂方法模式(Factory Method)
工厂方法模式是简单工厂方法模式的衍生,它的核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,使得系统可以在不修改具体工厂角色的情况下引用新的产品。
在这个模式中,一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品。
工厂方法模式是最典型的模板方法模式(Template Method Pattern)应用。

 

该模式中包含的角色及职责: 

 

抽象工厂角色:工厂方法模式的核心,任何在模式中创建的对象的工厂必须实现这个接口。
具体工厂角色:实现抽象工厂接口的具体工厂类,包含应用程序的逻辑。
抽象产品角色:产品对象的共同父类或共同拥有的接口。
具体产品角色:实现了抽象产品角色定义的接口,其具体产品有专门的具体工厂创建。

使用场景:
对于某个产品,调用者清楚知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来;
只是需要一种产品,对于那个工厂生产的并不关心,最终选用哪个具体工厂由生产者一方决定,它根据当前系统的情况来实例化一个具体的工厂返回给使用者,这个决策过程对于使用者来说是透明的。

1.抽象工厂角色

       

 

 

2.具体工厂角色

       

 

 

        

    3.抽象产品角色

        

 

 

 

    4.具体产品角色

      

      

 

 

 

5.测试类

     

 

6.测试结果

    

 

原文地址:https://www.cnblogs.com/xiaolin-peter/p/6905807.html