使用工厂模式有什么好处(想深入了解工厂模式)

老黑:小白呀,怎么每次见你都是愁眉苦脸的呀,女朋友跟别人跑了啊?

小白:哎、别提了。

老黑:我去,女朋友还真跑了啊?

小白:我一苦逼996程序员,哪里来的女朋友啊,家里的土豆滞销了,打包节奏太慢了,蔬菜堆积了,可愁死啦。

老黑:你家还种土豆呀,你上次不是说家里是种大白菜的嘛?

小白:我家里啥都种啊,土豆、白菜、马铃薯多着呢。家里人少,打包太慢了,蔬菜滞销了,好不容易种出来的蔬菜,卖的时候却出现问题了。

老黑:急也没有办法嘛,那我考考你,你家种了这么多东西,本来种植蔬菜就不容易了,还要自己去打包这么种类的蔬菜,如果是咱们在写程序的时候遇到话该怎么改进呢?

小白:你是想说设计者模式之工厂模式吧?

老黑:漂亮,能用代码写出来吗?

小白:哎呀,这个可简单啦

找到一个工厂让他们帮我们打包即可,核心代码如下:

使用工厂模式有什么好处(想深入了解工厂模式)(1)

我们作为种植户,不需要去关心打包蔬菜的细节,只需要得到他结果即可

使用工厂模式有什么好处(想深入了解工厂模式)(2)

小白:老黑怎么样?工厂模式出来了把

老黑:写确实是写出来了,但是所有的蔬菜都交给一个工厂去打包贩卖这样真的好嘛?

小白:你是说,专人专事吗?白菜交给白菜工厂打包贩卖,土豆交给土豆工厂打包贩卖嘛。这还不简单。创建一个Factory工厂,实现白菜、土豆、马铃薯三个工厂即可。

代码如下:

使用工厂模式有什么好处(想深入了解工厂模式)(3)

使用工厂模式有什么好处(想深入了解工厂模式)(4)

使用工厂模式有什么好处(想深入了解工厂模式)(5)

对于我们种植户来说,要打包白菜就找白菜工厂帮忙,打包土豆就找土豆工厂帮忙

使用工厂模式有什么好处(想深入了解工厂模式)(6)

小白:老黑,怎么样?搞定了噻。

老黑:思路没有错,专人专责,没什么毛病,但是你不觉得麻烦吗?土豆一个工厂,白菜一个工厂,多一样蔬菜就多一个工厂咯?你家人卖蔬菜要知道多少个打包厂的电话号码啊?

小白:确确实实、是这样的,有什么好的办法吗?

老黑:来来来,我给你介绍介绍抽象工厂模式,我们定义一个抽象的工厂类,就像咱们村的村长,约定了来推广打包工厂的老板,必须要满足拥有多个打包工厂,才能进村推广,大老板A家里开了多个蔬菜加工厂,正因为老板A能来我们村推广,他满足了村长定下的规范,所以我们的蔬菜他都能打包,我们也不需要单独再去找其他打包厂子了。

代码如下:

使用工厂模式有什么好处(想深入了解工厂模式)(7)

老黑:对于我们种植户来说,我们也不需要知道打包的细节,也不需要知道不同种类的打包工厂,也就是既然能来我们村推广的老板,他就肯定有我们想要的蔬菜打包工厂,能给我们想要的打包结果。

代码如下:

使用工厂模式有什么好处(想深入了解工厂模式)(8)

使用工厂模式有什么好处(想深入了解工厂模式)(9)

老黑:针对种植户来说,使用抽象工厂类是不是简单多了?

小白:好像是呢?有点迷,感觉用个设计者模式要多创建好多类额?感觉变成更加复杂了?好像还没有理解透彻。

老黑:这23中设计者模式,是众多软件开发人员,经过相当长的一段时间的试验和错误总结出来的,好好去理解吧。

使用工厂模式有什么好处(想深入了解工厂模式)(10)


作者是奋斗在最基层的开发人员,如果你觉得本文还不错,您的关注、转发将是我最大的功力。如果文中有逻辑错误,劳烦您不吝指出,我们一起学习,致敬同行的您。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页