-
概念
-
不说人话版本
- 是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。
-
说人话版本
- 抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。
-
名词
-
同等级
- 拥有相同性质的一类产品,比如手机里面的小米手机,华为手机属于同等级产品。
-
同族
- 表示一个产品族的产品,比如米家旗下系列的不同等级的产品都是一个米家产品族。
-
特点
- 如果能确定一个工厂的产品族不会变,那么用抽象工厂模式来定义所有不同等级的产品很方便。
- 一旦会拓展产品族里面的产品,就必须修改抽象工厂,则所有的具体工厂都需要修改,很不好。
-
实现
- 构造抽象工厂(接口):电子厂,定义能生产手机,电视,路由器,手表,笔记本的方法等等。
- 实现具体工厂(类):小米工厂,华为工厂,三星工厂等等。
- 实现产品同级的统一接口:规定此类产品拥有的功能,如手机接口,电视接口,笔记本接口等。
- 被生产的具体产品:小米平板5,华为智慧屏X65,三星Boom7等。
- 首先持有接口操作获取的具体工厂,让工厂生产对应的不同级别产品,最后持持有产品接口操作生产的具体产品。
-
结构
-
抽象工厂
- 生产同族产品工厂的一个统一接口
-
具体工厂
- 实现生产不同级别的产品的工厂
-
抽象产品
- 被实现的同级产品的统一接口
-
具体产品
- 被实现的具体产品