设计模式之工厂模式-三、抽象工厂模式

对于单个工厂来说,简单工厂模式足够支撑。不过涉及到多个工厂的话,就需要工厂模式了。

基于之前的业务场景,试想一下,客户需要对食物做分类了:中餐、西餐。那么这个时候就产生了两个工厂的需求(ChineseFoodFactory和WesternFoodFactory),上代码:

这里以noodle和chicken结尾的类都继承自食物类food(派生关系)

这里以noodle和chicken结尾的类都继承自食物类food(派生关系)

是的,你是否觉得有点眼熟(如果你已经理解了简单工厂模式,你应该发现了这是两个简单工厂模式。如果你没发现的话,请回到简单工厂模式重新理解一次)。好的,修改一下代码,工厂模式实现:

注:更改的部分已经标了出来,实际上是做了一个接口,把工厂的实例化作了抽象,这是工厂模式的关键思想

注:更改的部分已经标了出来,实际上是做了一个接口,把工厂的实例化作了抽象,这是工厂模式的关键思想

调用代码:

看到这里,其实读者应该已经大概理解,工厂模式是在简单工厂的基础上,将具体工厂的实例化作抽象选择。

我在文章开头提到过,读者想要有所收获的前提是:坚持看完,如果你已经看到了这里,说明你理解了这个前提,go on!

上一篇:企业软件产品和服务 之 设计保证安全 七项承诺-1. 引言


下一篇:docker学习--最详细的docker run 各子命令解释与应用