一.简单工厂模式
- 创建型,不属于GOF的23种设计模式
- 抽象产品类:所创建的所有对象的父类
具体产品类:所需要创建的对象的类,继承抽象产品类
工厂:根据逻辑判断,创建不同的具体产品对象
优点:实现对象的创建和使用分离
缺点:工厂类不够灵活,新增具体产品时需要改工厂类的代码
二.工厂方法模式
1.创建型
2.抽象产品,具体产品,抽象工厂,具体工厂
3.在简单工厂的基础上,为每一个具体产品类新建了对应的具体工厂类
4.优点:解决了简单工厂模式的问题,工厂子类封装了对象的创建细节,无需修改原有系统,具有较好的拓展性。
5.缺点:新增一个产品时,需要增加对应产品子类和工厂子类,导致类个数成对增加,增加了系统复杂度。
三.抽象工厂模式
1.创建型
2.模式结构:抽象工厂,具体工厂,抽象产品,具体产品
3.产品族:将同种品牌的划分为产品族,如华为手机,华为平板
产品等级结构:同种类型的产品,如华为手机,小米手机
4.将同一产品族的产品放到同一个工厂里创建
5.优点:隔离具体类的生成,增加新的产品族比较方便
6.缺点:增加新的产品等级结构很复杂,需要修改抽象工厂和所有的具体工厂类,对开闭原则呈现倾斜性