大话设计模式(pdf+epub+mobi+txt+azw3)

推荐书 技能/教程 2019-10-31 4.24 K 0

2.jpg


第2章 商场促销——策略模式


小菜,给你出个作业,做一个商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。”


“就这个?没问题呀。”小菜说,“用两个文本框来输入单价和数量,一个确定按钮来算出每种商品的费用,用个列表框来记录商品的清单,一个标签来记录总计,对,还需要一个重置按钮来重新开始,不就行了?!”

大鸟,”小菜叫道,“来看看,这不就是你要的收银软件吗?我不到半小时就搞定了。”


“哈哈,很快嘛,”大鸟说着,看了看小菜的代码。接着说:“现在我要求商场对商品搞活动,所有的商品打八折。”


“那不就是在totalPrices后面乘以一个0.8吗?”


“小子,难道商场活动结束,不打折了,你还要再改一遍程序代码,然后再用改后的程序去把所有机器全部安装一次吗?再说,还有可能因为周年庆,打五折的情况,你怎么办?”

“这比刚才灵活性上是好多了,不过重复代码很多,像Convert.ToDouble(),你这里就写了8遍,而且4个分支要执行的语句除了打折多少以外几乎没什么不同,应该考虑重构一下。不过这还不是最主要的,现在我的需求又来了,商场的活动加大,需要有满300返100的促销算法,你说怎么办?”


“满300返100,那要是700就要返200了?这个必须要写函数了吧?”


“小菜呀,看来之前教你的白教了,这里面看不出什么名堂吗?”


“哦!我想起来了,你的意思是简单工厂模式是吧,对的对的,我可以先写一个父类,再继承它实现多个打折和返利的子类,利用多态,完成这个代码。”


声明:

推书365展示内容收集于网络,仅用于免费的知识分享交流和学习!版权归出版方所有。

如有侵权,请联系本站进行删除,感谢您的理解与包容!

如果您喜欢本站推荐书籍等资源,请支持购买正版,谢谢合作!