用星际学习设计模式之一(actionscript3版):工厂方法模式的学习
早几天看了一下设计模式的简单工厂模式,这两天再看工厂方法模式,感觉虽然第一次接触设计模式,但简单看了一下后发现,原来自己曾经的有些思路正和设计模式中所做的一样,正如有人所说的,设计模式并不是一个新的东西,而是总结一下你程序设计中的思路。
再接再厉,接下分享下我看工厂方法模式的心得吧!
上次的简单工厂模式解决了根据传入的参数动态返回对象的问题,一个兵工厂里面可以根据你传入的参数来返回marine或者是fireman,而大多数时候,我们并不是直接返回参数,而需要对传回的参数进入判断,或者是判断是否满足实例化对象的条件,在星际中,制造机枪兵或者火焰兵是需要判断资源是否足够,这些都可以放在工厂类中,但这样会造成代码的臃肿,我对快刀浪子的一名话印象深刻,大意是每个类需要有其生成,销毁等等所有的方法,使用时只管实例化,根据上面两个思路,我们将判断资源的代码分别放在两个独立的具体的工厂当中,负责真正的新建对象的任务。主工厂负责分配任务。
先看思路:简单工厂模式中的工厂类(兵种制造器的类)保持不变,增加一个制造接口,定义一个实际制造对象的方法,然后定义各个具体制造不同对象的工厂,同时要求这些工厂执行这个制造接口,让这些工厂去实现实际制造对象的方法。
Read the rest of this entry »