抽象工厂和简单工厂模式和工厂模式的区别

前段时间有个同学参加面试问了抽象工厂和工厂模式的区别,我平常一般用的是简单的工厂模式,对于抽象工厂,基本没有运用到,故而本人也是不知道他俩的区别。而后我果断百度一下,在此我想通过这篇博客来说说我对于其两者之间的理解。

首先是简单工厂模式,简单工厂往往只有一个工厂类(SimpleFactory),但工厂处理的类却有很多。举个例子,比如这里有个菜园工厂类,菜园里可以处理很多蔬菜,例如,青菜,白菜,他们的处理方法大致是一样的,故而可以通过工厂方法进行处理,而一个工厂要处理的类往往有一个公共的接口(Product)。具体框架图如下(不会画图,转载来的):


想必简单工厂模式我们已经有大概的了解了,那么下面我们来说说工厂模式和简单工厂有什么区别呢?工厂模式和简单工厂模式的区别是,简单工厂原本只是可以处理一种类型的产品,就如上面只能处理蔬菜,而工厂方法就如同这个工厂经过发展后,逐步发展壮大,可以处理多种类型的产品(比如一个工厂发展后增加了处理种植果树的技能)。工厂模式如下图,其中:工厂(FactoryMethod),工厂可以处理的产品有两个(可以更多,ConcreateFactoryA,ConcreateFactoryB),至于处理的产品也分为了两类(ConcreateProductA,ConcreateProductB).


最后说说抽样工厂和工厂方法的区别,抽样工厂就如同一个市场,市场上可以有很多基本功能差不多的工厂,同样可以处理蔬菜或者果树。 注意,工厂模式只有一个工厂,但这个工厂可以处理很多类型的东西,而抽样工厂缺是有很多个工厂,这些工厂处理的类型可能一样,也可能不一样。还是上图吧。如下图,可以看到,下列框架图有 市场(AbstractFactory)很多个工厂(factoryA,factoryB), 以及处理的多个产品(ProductA,ProductB).



 这是博主的第一个博客,可能有什么不正确的地方欢迎提出,当然这也是我这个萌新的理解,每一个都会有不同的理解吧,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值