一、简单工厂模式
用一个工厂来生产所有产品。
**比如:**一个车辆工厂,可以生产自行车、摩托车、小汽车,它根据客户的需要,生产不同的车辆。客户说要一辆自行车,它就生产一辆自行车;客户说要一辆摩托车,它就生产一辆摩托车。简单来说,就是一个车辆工厂,生产所有类型的车辆。
一个工厂类生产继承了某个类(或实现了某个接口)的产品。
二、工厂模式
将车辆工厂分成不同的子工厂,自行车工厂只生产自行车,摩托车工厂只生产摩托车,小汽车工厂只生产小汽车。简单来说,一个车辆工厂只生产一种类型的车辆。
一个工厂只对应一个类的产品。
三、抽象工厂模式
可以理解为一个工厂就是一个集团,可以生产出很多东西。比如一个叫“红星”的工厂,它可以不仅仅可以生产键盘,还可以生产鼠标;“天涯”工厂也可以生产键盘和鼠标。简单来说,抽象工厂就是一个工厂不仅仅只生产一种产品,而是可以生产出一套产品。
一个工厂类生产多个类别的产品。
总结
简单工厂模式:
一个工厂生产同一类的产品。(一个车辆工厂就生产车,不管它是自行车还是摩托车,只根据传入的参数来决定生产什么车)
工厂模式:
一个工厂只生产它负责的产品。(自行车工厂只生产自行车,不生产摩托车和小汽车)
抽象工厂模式:
一个工厂可以生产多类产品。(A工厂可以生产A品牌的自行车、摩托车,B工厂可以生产B品牌的自行车、摩托车)