【案例】
承接上一篇简单工厂模式。黑枣克隆公司在初始发展阶段使用简单工厂模式来生产克隆狗,狗的分类方式局限于按颜色分类。由于市场需求变化,客户对同一颜色狗有了体型大小要求,分为大型狗及小型狗两类。
【分析OOA】
如果我是黑枣克隆公司老板,我可能要开设分厂。使用大型狗工厂专门生产大型狗,小型狗工厂专门生产小型狗。其实软件工程师也会去这样实现。工厂方法模式使用继承自抽象工厂角色的多个子类来代替简单工厂模式中的“上帝类”。
【设计OOD】
<UML>
<说明>
1、抽象工厂角色Factory: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。
2、具体工厂角色SmallDogFactory及BigDogFactory