在JAVA设计模式中我们肯定听说过工厂方法和抽象工厂,其中工厂方法还好划分,因为它只负责生成一种产品,但是最头疼的可能是对抽象工厂的理解,因为抽象工厂并不是单一的一个产品,它是由多个成品组成。为了便于理解工厂方法我们引入了产品族和产品等级结构的概念。
image
目录
- 产品等级结构
- 产品族
- 产品族和产品等结构的关系
产品等级结构
- 产品的继承结构
如图一的圆形表示的冰箱就是一个产品等级结构,三角形表示的洗衣机、方形表示的空调他们都是一个产品等级结构
产品族
- 不同的产品等级结构的一组产品组成产品族
如图二的第一行实心红色表示的就是一个产品族,其中该海尔的产品族分别由海尔冰箱、海尔洗衣机和海尔空调组成。
产品族和产品等级结构的关系
image
- 从图二纵向来看,不管是海尔空调、美的空调、国美空调他们都是同一种产品结构的不同的品牌产品
- 从横向来看海尔产品族、美的产品族、国美产品族,组成他们的产品等级结构都是相同的。并且他们都是家电类、切包含的产品相同
- 一组相同产品等级结构的产品可以通过工厂方法表示:如海尔空调、格力空调、美的空调、国美空调等他们都是空调。
- 产品族可以用抽象工厂表示