一篇讲清静态工厂、经典工厂、抽象工厂三种模式
2016-09-02 本文已影响0人
高公子Daniel
不想大篇幅讲概念,要看概念的去别处看完了再来,因为讲概念的很多了。讲来讲去讲不清!
本文就是想通过一个循序渐进的通用示例,比对出三种工厂模式的异同点。
这个例子,我决定用这个: 种菜
刚开始种,实力薄弱,规模小,所以集中火力,先种点根茎类的菜,红薯、山药、胡萝卜啥的。
这时候你只生产一种类型的产品:根茎类蔬菜。所以呢,静态工厂模式就够你用了,这个工厂的目标很明确,生产根茎类的菜。
没成想,偏偏今年红薯、山药、胡萝卜都大卖啊~~~你赚钱啦,俨然一个小壕啊。然后你决定再接再厉
扩大经营,必须的!!!今年再增加个茎叶类蔬菜,卷心菜、娃娃菜、油麦菜、空心菜。
现在你就需要经典工厂模式了。一个抽象工厂,用来生产蔬菜。实例化出来两个实例工厂:一个生产根茎类;一个生产茎叶类。
很明确,有木有?
哎呦~,今年红薯、山药、胡萝卜、卷心菜、娃娃菜、油麦菜、空心菜都大卖啊,你简直就是经营之神啊!!!~~你赚翻啦,不能再壕了啊,要冷静了啊,然后你决定,好好地给自己定一个小目标
。
涉足转基因种植,这个有钱途啊,能送你早日上巅峰啊!你又上了个层次,非转基因和转基因的你都搞。但是,非转和转,都包含了根茎类和茎叶类蔬菜。工厂怎么建?生产怎么搞?
抽象工厂模式
可以完美的解决你的问题。
开始动工。一个抽象工厂,用来生产根茎类和茎叶类蔬菜。然后实例化两个实例工厂,一个生产非转基因蔬菜;一个生产转基因蔬菜。然后让它们去生产对应的蔬菜种类。
骚年,看懂了吗?有图会不会可以理解的更好?但是我今天懒啊,不想画啊。你自己画个类图,代码实现一下吧!可好?
最后再次重申,本文不讲三种模式的概念,只辨别三种模式的异同!