前面说了简单工厂模式 + 工厂方法模式,今天来说一说抽象工厂模式:
抽象工厂模式用来干嘛的呢?我们这么来说:
比如 人:从肤色的维度有三种肤色
从性别的维度有两种性别
组合起来就是6种人(对应6中具体的实现),类似排列组合。
从设计角度来看,一个具体的对象通过两个 坐标就可以确定:肤色和性别,如图9-1所示。
那在创建这六种人的时候,我们就需有一个工厂既能确定人的性别、肤色。这就引入了我们的抽象工厂模式,老规矩咋们先看看类图:
代码结构图:
IHuman:
AbstractBlackHuman:
FemaleBlackHuman:
MaleBlackHuman:
IHumanFactory:
FamaleHumanFactory:
MaleHumanFactory:
测试类:NvWa女娲
总结: