设计模式-工厂模式(简单工厂和抽象工厂区别)
参考网址:
https://blog.csdn.net/qq_33732195/article/details/110101808?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165579857916782350943253%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165579857916782350943253&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-110101808-null-null.142v19control,157v15new_3&utm_term=%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82&spm=1018.2226.3001.4187
前置说明:
之前学习工厂模式总是遗忘 , 特别是抽象工厂 , 概念比较模糊 , 通过类图和脑图的方式理解思路就会比较清晰 , 看来画图是理解一个知识点更好的一个方法
前置概念
理解产品族和产品等级
产品族:一个品牌下面的所有产品;例如华为下面的手机,路由器,电脑 称为华为的产品族;
产品等级:多个品牌下面的同种产品;例如华为和小米下面的手 称为一个产品等级;
以上图参考了文章地址
抽象工厂的有优缺点
缺点
- 产品族扩展非常困难,要增加一个系列的某一产品,既要修改工厂抽象类里加代码,又修改具体的实现类里面加代码;
- 增加了系统的抽象性和理解难度;
优点
一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象(将一个系列的产品统一一起创建);
适用场景
-
一系列相关产品对象(属于同一产品族)一起创建时需要大量的重复代码;
-
一系列相关产品对象(属于同一产品族)一起创建时需要大量的重复代码;
-
提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现;