简介
工厂方法模式是什么?为什么要有工厂方法模式,不是有了简单工厂模式了吗?两个模式都有工厂,那有什么不同呢?功工厂方式模式是怎样实现的?OK,带着这些问题,继续看下面文章。
工厂方法模式是对简单工厂模式的扩展,可以说是用来完善简单工厂模式的缺点的,什么缺点呢?在上一篇文章已经说过:扩展性极差。你想一下,如果在简单工厂模式中,如果董事会决定想添加一个玩具生产,叫熊猫玩具,那么全厂该做的事有哪些呢?
1.告诉销售经理:我们准备要添加一个熊猫玩具,可以提供给用户的。
2.到工厂作坊里面,告诉工人要做熊猫工具。
在现实生活中确实是这样的,因为在现实生活中这样做不会造成很大的影响,但是在程序世界里面就大件事了,首先如果这样做可能会破坏工厂作坊的内部结构,造成BUG,还有的是这样改就等于修改了源代码,不断添加新的工具,不断修改源代码,有没想过:如果添加100个玩具,那个判断命令里面得有多少个case啊?,程序里面不同现实生活,创建新的大工厂是不用钱的。。所以要用好这个特点,下面我们就对上篇文章中的玩具厂进行一次大规模的改造,让其实现工程方法模式!!!!!
是不是很激动,,我也很激动。。。
首先,玩具工厂原址变成指挥站,专门指挥新工厂的建立的,然后指挥站附近新建三个小型工厂:玩具猫工作厂,玩具狗工作厂,玩具熊猫工作厂。各自的工作坊只会做各自的玩具。指挥战中有玩具的生产计划书,每个小型工厂都需要按照指挥部的工作计划书来做玩具(当然计划书只要求了一部分特色功能,各个厂的小玩具到底怎么做,,还要自己做的)。好了,就这么简单,全新的工厂开发模式出来了,这样做的好处是什么呢?我们看一下如果新提供鳄鱼玩具到底该做什么:
1.新建一个小型工厂(鳄鱼工厂)
2.去问指挥部那一份制作计划书,让鳄鱼有计划书中的基本功能(这样才能通过考核然后上线出售)
2.鳄鱼工厂自己购买鳄鱼的制作指南去制作鳄鱼玩具。
现在是不是发现,如果给程序干这事,简直就是,,,超级简单,不会扰乱其他工厂的生产秩序。当有客户来买玩具的时候,他们到指挥站说:我要一只小狗,指挥站说:给钱后请到哪里哪里拿(小狗工厂),然后客户走过去拿就是了。










