工厂方法模式小记【原创】
女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了。这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空气是清新的,太美丽了,然后就待时间长了就有点寂寞了,没有动物,这些看的到都是静态的东西呀,怎么办?
别忘了是神仙呀,没有办不到的事情,于是女娲就架起了八卦炉(技术术语:建立工厂)开始创建人,具体过程是这样的:先是泥巴捏,然后放八卦炉里烤,再扔到地上成长,但是意外总是会产生的:
第一次烤泥人,兹兹兹兹~~,感觉应该熟了,往地上一扔,biu~,一个白人诞生了,没烤熟!
第二次烤泥人,兹兹兹兹兹兹兹兹~~,上次都没烤熟,这次多烤会儿,往地上一扔,嘿,熟过头了,黑人哪!
第三次烤泥人,兹~兹~兹~,一边烤一边看着,嘿,正正好,Perfect!优品,黄色人类!【备注:RB人不属此列】
定义了一个产品类(Human)和其具体实现类,一个抽象工厂类(AbstractHumanFactory)及其具体工厂实现类。工厂方法模式最大的特点就是定义了一个用于创建对象的接口(AbstractHumanFactory),让子类决定去实例化哪个类(BlackHuman、YellowHuman、WhiteHuman,这里少画了三条由HumanFactory指向三个具体产品类的虚线,表示依赖)。
工厂方法有个通用的类图:
对于此图有一个相应的通用代码(java代码):
1:抽象产品类:
2:具体产品类:
3:抽象工厂类:
4:具体工厂类:
5:客户端:
一句话概括工厂方法模式:工厂子类对创建子类的实现。