根据场景的不同生成不同的对象实例,这种生成对象的方法,我们称为工厂模式
比如说 一个图片类 里面有jpeg 和png 每个返回不同类型图片的大小 和宽度
我们可以做个工厂模式 通过不同的传参 new 不同的对象
也可以把 对象实例中转器 那个方法做成静态 我们称谓静态工厂模式
工厂方法模式 :定义了一个用于创建对象的接口 让子类决定实例化哪一个类 工厂模式使一个类的实例化延迟到了子类
工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建
多个。
下图是个抽象工厂模式 如果业务很庞大 用 否则就用简单工厂模式
![](https://img-my.csdn.net/uploads/201301/24/1358993279_1106.png)