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

<说明>
1、抽象工厂角色Factory:
本文介绍了PHP中的工厂方法模式,通过黑枣克隆公司的案例展示了如何从简单工厂模式升级到工厂方法模式。文章分析了面向对象设计的工厂方法,包括抽象工厂角色、具体工厂角色、抽象产品角色和具体产品角色,并提供了相关的UML图和代码示例。此外,还讨论了工厂方法模式的扩展性和代码复用性,以及与抽象工厂模式的结合使用。
【案例】
承接上一篇简单工厂模式。黑枣克隆公司在初始发展阶段使用简单工厂模式来生产克隆狗,狗的分类方式局限于按颜色分类。由于市场需求变化,客户对同一颜色狗有了体型大小要求,分为大型狗及小型狗两类。
【分析OOA】
如果我是黑枣克隆公司老板,我可能要开设分厂。使用大型狗工厂专门生产大型狗,小型狗工厂专门生产小型狗。其实软件工程师也会去这样实现。工厂方法模式使用继承自抽象工厂角色的多个子类来代替简单工厂模式中的“上帝类”。
【设计OOD】
<UML>

<说明>
1、抽象工厂角色Factory:

被折叠的 条评论
为什么被折叠?
【工厂方法模式 Factory Method】&spm=1001.2101.3001.5002&articleId=7572514&d=1&t=3&u=c3c1992dd77e41eab52f24b05129412b)