商场促销——策略模式

商场促销——策略模式

商场收银软件

时间:2月27日22点  地点:大鸟房间  人物:小菜、大鸟

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

在这里插入图片描述

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

商场收银系统v1.0关键代码如下。

在这里插入图片描述

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

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

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

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

小菜不好意思道:“啊,我想得是简单了点。其实只要加一个下拉选择框就可以解决你说的问题。”

大鸟微笑不语。

增加打折

在这里插入图片描述

商场收银系统v1.1关键代码如下。

在这里插入图片描述

"这下可以了吧,只要我事先把商场可能的打折都做成下拉选择框的项,要变化的可能性就小多了。"小菜说道。

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

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

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

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

“你打算写几个子类?”

“根据需求呀,比如八折、七折、五折、满300送100、满200送50……要几个写几个。”

“小菜又不动脑子了,有必要这样吗?如果我现在要三折,我要满300送80,你难道再去加子类?你不想想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿陌名!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值