1.简单工厂模式
有一个静态的工厂创建函数,负责创建各种工厂,符合依赖倒置原则;
但是增加产品的时候需要修改工厂创建函数,不符合开放封闭原则;
适用于产品较少的情况。
2.工厂模式
工厂模式和简单工厂的区别是将工厂类也进行抽象,这增加产品不需要修改工厂类,只需要增加工厂类,符合开放封闭原则。
适用于经常需要增加产品的情况。
3.抽象工厂模式
抽象工厂和工厂模式的区别是,抽象工厂的基类工厂有多个类别的产品接口,比如car和plane就是不同类别的产品。
但是,在增加新类别的产品的时候,需要修改所有工厂,比较麻烦。
适用于有多个类别产品的情况。
ps:
依赖倒置原则---高层和底层都依赖于抽象,比如工厂模式,客户和产品都依赖于产品的基类。
开放封闭原则---拓展开放,对修改封闭;即需求变化时,通过增加代码来实现,而不是修改原来的代码;需要将频繁修改的点进行抽象。