工厂方法模式(Factory Method)

工厂方法模式分为三种:

  1、普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建

           定义接口: interface    Sender -------Send();

           实现类:NewsSender     实现接口的方法

                    WaterSender    实现接口的方法

          工厂类:SendFactory 

        Sender produce(String type) {

          代码块

        }

     测试:    new SendFactory().produce(type);

 2、多个工厂方法模式:是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传入的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。

  改动上面的SendFactory类:      

      Sender produceNews(){return new NewsSender}   

      Sender produceWater(){return new WaterSender} 

  测试:

    SendFactory sendFactory = new SendFactory();

              Sender sender = sendFactory.produceNews();

    sender.Send();

  3、静态工厂方法模式:将上面的多个工厂方法模式里的方法职位静态的,不需要创建实例,可以直接调用。

      SendFactory类:

        statis Sender produceNews(){ return new NewsSender}

        statis Sender produceWater(){return new WaterSender}

      测试:

        SendFactory.produceNews().Send();

总体来说,工厂模式应用场景:   出现了大量的产品需要创建,并且具有共同的接口。

在上面三种模式中,第一种如果传入的字符串有误,就不能正确创建对象,第三种相对于第二种,不需要实例化,因此,一般会选用第三种--静态工厂方法模式。

原文地址:https://www.cnblogs.com/wdpnodecodes/p/7820512.html