//readMe

总:工厂模式就是传入不同的参数给到工厂,然后工厂会造出不同的东西返回
1、传统工厂模式:
客户端使用if-else
2、简单工厂模式:
在简单工厂中判断if-else;
将简单工厂聚合到客户端,客户端仅需要将参数传到工厂即可
代码:编写普通类来判断即可
3、工厂方法模式
(1)编写一个工厂抽象类,将具体的方法实例化推迟到子类中。
(2)将通用的方法定义到工厂抽象类中即可,需要变化的方法推迟到子类中去实现
4、抽象工厂模式
(1)使用接口,将具体方法推迟到子类去实现
(2)多态的使用

总结:
1)工厂中完成create(造产品)的方法,给它什么它就造什么
2)当产品少的时候直接选用简单工厂模式即可,写一个普通类在类里面完成create即可
3)当产品多的时候使用工厂方法或者抽象工厂方法即可,将工厂抽象一层,将create方法做成抽象的
推迟到子类去完成,通用方法还是写在抽象工厂中(抽象工厂不用,所有都推迟到子类)
4)多态,在工厂调用方使用聚合的方式将工厂抽象类聚合到其中,使用够着方法将其赋值(当client【客户端】传的
是哪个具体的子类,就使用的是该子类的create方法)。
在定义顶层接口时,尽量使用多态的方式传参,聚合

// 传统方法

CheesePizza.javaOrderPizza.javaOtherPizza.javaPizza.java

// 简单工厂

Client.javaOrderPizza.javaSimpleFactory.java

// 工厂方法

BjCheesePizza.javaBjOrderPizza.javaBjPepperPizza.javaClient.javaOrderPizza.java

// 抽象工厂

AbsFactory.javaBjFactory.javaClient.javaOrderPizza.java