1,简单工厂模式的分类和使用场景:




            (1)简单工厂模式一般分为:普通简单工厂,多方法简单工厂,静态方法简单工厂

(2)使用场景:


             总体来说,工厂模式适合,凡是出现了大量的产品需要创建,并且具有共同的接口时,


可以通过工厂方法模式进行创建,在以下的三种模式中,第一种如果传入字符串有误,不能


正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会


选择第三种-------静态工厂方法模式



  

java工厂方法模式详解 工厂方法 java_简单工厂模式



2,普通简单工厂模式:


            (1)就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。如图:


java工厂方法模式详解 工厂方法 java_java工厂方法模式详解_02


  最后,建工厂类:

 

java工厂方法模式详解 工厂方法 java_设计模式一_03



3,多方法简单工厂模式:


            (1)多方法简单工厂是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递


的字符串出错,则不能正确的创建对象,而多个工厂方法模式是提供多个工厂方法,分别


创建对象。



java工厂方法模式详解 工厂方法 java_设计模式一_04


java工厂方法模式详解 工厂方法 java_JAVA_05


4,多个静态方法简单工厂模式:


java工厂方法模式详解 工厂方法 java_设计模式一_06



*******************************下面这种方法才是王道*************************************






5,工厂方法模式(Factoty Method):


            (1)简单工厂模式有一个问题,类的创建依赖工厂类,如果想要扩展程序,必须对工厂类


进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,解决方法就是用到


工厂方法模式,创建一个接口和创建多个工厂实现类,这样一旦需要增加新的功能,直接


增加新的工厂类就行了,不需要修改之前的代码。



java工厂方法模式详解 工厂方法 java_简单工厂模式_07


java工厂方法模式详解 工厂方法 java_java工厂方法模式详解_08


java工厂方法模式详解 工厂方法 java_工厂方法模式_09


java工厂方法模式详解 工厂方法 java_工厂方法模式_10



 (2)工厂方法模式的好处:如果你想要增加一个新的功能,则只需要做一个实现类,实现


Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码,


这样做扩展性比较好