1、简单工厂模式
简单工厂模式是指创建一个工厂类,这个工厂类可以根据入参的不同来决定生产不同的产品。
从图中结构就可以看出来,如果产品种类过多的话,会增加工厂类的职责。不利于扩展相对复杂的产品结构。
而且,增加一个产品就需要修改工厂类,不符合开闭原则。
2、工厂方法模式
工厂方法模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法模式让类的实例化推迟到子类中进行。
和简单工厂模式比较可以看出。每一种产品都增加了一个相对应的工厂。这样增加产品的时候,只需要增加一个对应的工厂类即可。尊少开闭原则,但是类的数量较多。
3、抽象工厂模式
抽象工厂模式是指提供一个创建一系列相关或相互依赖对象的接口(抽象类),该接口定义了工厂需要具备的功能。
抽象工厂模式主要是引入了产品族的概念。一个工厂负责生产一系列产品。如上图格力工厂生产格力冰箱、空调、电视。海尔的则负责生产海尔冰箱、空调、电视。
4、特意把三种工厂模式的UML图放在一起。是为了进行对比,观察从1到2再到3每一步增加了什么,分析这样做的利弊。