上QQ阅读APP看书,第一时间看更新
2.2 增加打折
商场收银系统v1.1关键代码如下:
“这下可以了吧,只要我事先把商场可能的打折都做成下拉选择框的项,要变化的可能性就小多了。”小菜说道。
“这比刚才灵活性上是好多了,不过重复代码很多,像Convert.ToDouble(),你这里就写了8遍,而且4个分支要执行的语句除了打折多少以外几乎没什么不同,应该考虑重构一下。不过这还不是最主要的,现在我的需求又来了,商场的活动加大,需要有满300返100的促销算法,你说怎么办?”
“满300返100,那要是700就要返200了?这个必须要写函数了吧?”
“小菜呀,看来之前教你的白教了,这里面看不出什么名堂吗?”
“哦!我想起来了,你的意思是简单工厂模式是吧,对的对的,我可以先写一个父类,再继承它实现多个打折和返利的子类,利用多态,完成这个代码。”
“你打算写几个子类?”
“根据需求呀,比如八折、七折、五折、满300送100、满200送50……要几个写几个。”
“小菜又不动脑子了,有必要这样吗?如果我现在要三折,我要满300送80,你难道再去加子类?你不想想看,这当中哪些是相同的,哪些是不同的?”