简单工厂:
实现步骤:
定义产品接口 通过实现产品接口创建具体的产品类 如生产汽车配件 将汽车配件作为上级接口 然后创建轮胎类 发动机类 变速箱类实现汽车配件接口 重写 产品方法实现具体的产品类的功能在创建一个工厂类 通过工厂生产具体的产品 在工厂方法中通过switch case方法判断生产的是哪一类产品
工厂方法:
实现步骤:
定义一个产品借口 通过实现产品接口创建出对应的产品类 将汽车配件作为产品接口 然后创建轮胎类 发动机类 变速箱类实现汽车配件接口 (本步和简单工厂没有区别)
在定义一个工厂接口 在通过实现工厂接口创建出不同的工厂类(一个个小工厂) 通过具体的工厂类生产出具体的产品
特点:
在需要扩展时 分别继承一个总产品接口(工厂借口) 创建一个新的产品类(工厂类)
抽象工厂
实现步骤:
需要一个抽象工厂,里面有三个接口分别为生产轮胎、发动机、制动系统,抽象类需要三个抽象产品分别为轮胎、发动机、制动系统,抽象接口需要实现上面的三个抽象接口,定义出每个接口不通的对象,比如:普通轮胎和越野轮胎需要两个具体类继承自上面的抽象类,实现具体的工厂,比如:生产Q3的工厂和生产Q7的工厂在客户端new出对应的具体工厂并调用对应的生产方法
特点:
多个抽象产品类 一个抽象工厂类 在工厂类接口中定义多个方法 可以生产出多种产品 (一个产品组)