中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

小菜編程成長(zhǎng)記(六 工廠不好用了?)

系列文章導(dǎo)航:

四大發(fā)明之活字印刷——面向?qū)ο笏枷氲膭倮?/a>

小菜編程成長(zhǎng)記(一 面試受挫——代碼無(wú)錯(cuò)就是好?)

小菜編程成長(zhǎng)記(二 代碼規(guī)范、重構(gòu))

小菜編程成長(zhǎng)記(三 復(fù)制VS復(fù)用)

小菜編程成長(zhǎng)記(四 業(yè)務(wù)的封裝)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(六 工廠不好用了?)

小菜編程成長(zhǎng)記(七 用“策略模式”是一種好策略)

小菜編程成長(zhǎng)記(八 反射——程序員的快樂(lè)!)

小菜編程成長(zhǎng)記(九 會(huì)修電腦不會(huì)修收音機(jī)?——聊設(shè)計(jì)模式原則)

小菜編程成長(zhǎng)記(十 三層架構(gòu),分層開發(fā))

小菜編程成長(zhǎng)記(十一 無(wú)熟人難辦事?——聊設(shè)計(jì)模式迪米特法則)

小菜編程成長(zhǎng)記(十二 有了門面,程序員的程序會(huì)更加體面!)

小菜編程成長(zhǎng)記(十三 設(shè)計(jì)模式不能戲說(shuō)!設(shè)計(jì)模式怎就不能戲說(shuō)?)


(續(xù)上篇)
  小菜心里想:“大鳥要我做的是一個(gè)商場(chǎng)收銀軟件,營(yíng)業(yè)員根據(jù)客戶購(gòu)買商品單價(jià)和數(shù)量,向客戶收費(fèi)。這個(gè)很簡(jiǎn)單,兩個(gè)文本框,輸入單價(jià)和數(shù)量,再用個(gè)列表框來(lái)記錄商品的合計(jì),最終用一個(gè)按鈕來(lái)算出總額就可,對(duì),還需要一個(gè)重置按鈕來(lái)重新開始,不就行了?!”

代碼樣例(可使用):

  商場(chǎng)收銀系統(tǒng)v1.0關(guān)鍵代碼如下:

Code

系列文章導(dǎo)航:

四大發(fā)明之活字印刷——面向?qū)ο笏枷氲膭倮?/a>

小菜編程成長(zhǎng)記(一 面試受挫——代碼無(wú)錯(cuò)就是好?)

小菜編程成長(zhǎng)記(二 代碼規(guī)范、重構(gòu))

小菜編程成長(zhǎng)記(三 復(fù)制VS復(fù)用)

小菜編程成長(zhǎng)記(四 業(yè)務(wù)的封裝)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(六 工廠不好用了?)

小菜編程成長(zhǎng)記(七 用“策略模式”是一種好策略)

小菜編程成長(zhǎng)記(八 反射——程序員的快樂(lè)!)

小菜編程成長(zhǎng)記(九 會(huì)修電腦不會(huì)修收音機(jī)?——聊設(shè)計(jì)模式原則)

小菜編程成長(zhǎng)記(十 三層架構(gòu),分層開發(fā))

小菜編程成長(zhǎng)記(十一 無(wú)熟人難辦事?——聊設(shè)計(jì)模式迪米特法則)

小菜編程成長(zhǎng)記(十二 有了門面,程序員的程序會(huì)更加體面!)

小菜編程成長(zhǎng)記(十三 設(shè)計(jì)模式不能戲說(shuō)!設(shè)計(jì)模式怎就不能戲說(shuō)?)


“這下可以了吧,只要我事先把商場(chǎng)可能的打折都做成下拉選擇框的項(xiàng),要變化的可能性就小多了。”小菜說(shuō)道。
      “這比剛才靈活性上是好多了,不過(guò)重復(fù)代碼很多,像Convert.ToDouble(),你這里就寫了8遍,而且4個(gè)分支要執(zhí)行的語(yǔ)句除了打折多少以外幾乎沒(méi)什么不同,應(yīng)該考慮重構(gòu)一下。不過(guò)還不是最主要的,現(xiàn)在我的需求又來(lái)了,商場(chǎng)的活動(dòng)加大,需要有滿300返100的促銷算法,你說(shuō)怎么辦?”
       “滿300返100,那要是700就要返200了?這個(gè)必須要寫函數(shù)了吧?”
       “小菜呀,看來(lái)之前教你的白教了,這里面看不出什么名堂嗎?”   
       “哦!我想起來(lái)了,你的意思是簡(jiǎn)單工廠模式是吧,對(duì)的對(duì)的,我可以先寫一個(gè)父類,再繼承它實(shí)現(xiàn)多個(gè)打折和返利的子類,利用多態(tài),完成這個(gè)代碼。”
       “你打算寫幾個(gè)子類?”
       “根據(jù)需求呀,比如8折、7折、5折、滿300送100、滿200送50……要幾個(gè)寫幾個(gè)。”
       “小菜又不動(dòng)腦子了,有必要這樣嗎?如果我現(xiàn)在要3折,我要滿300送80,你難道再去加子類?你不想想看,這當(dāng)中哪些是相同的,哪些是不同的?”
       “對(duì)的,這里打折基本都是一樣的,只要有個(gè)初始化參數(shù)就可以了。滿幾送幾的,需要兩個(gè)參數(shù)才行,明白,現(xiàn)在看來(lái)不麻煩了。”
        “面向?qū)ο蟮木幊蹋⒉皇穷愒蕉嘣胶茫惖膭澐质菫榱朔庋b,但分類的基礎(chǔ)是抽象,具有相同屬性和功能的對(duì)象的抽象集合才是類 。打一折和打九折只是形式的不同,抽象分析出來(lái),所有的打折算法都是一樣的,所以打折算法應(yīng)該是一個(gè)類。好了,空話已說(shuō)了太多,寫出來(lái)再是真的懂。”

   大約1個(gè)小時(shí)后,小菜交出了第三份的作業(yè)

  商場(chǎng)收銀系統(tǒng)v1.3關(guān)鍵代碼如下:

Code

系列文章導(dǎo)航:

四大發(fā)明之活字印刷——面向?qū)ο笏枷氲膭倮?/a>

小菜編程成長(zhǎng)記(一 面試受挫——代碼無(wú)錯(cuò)就是好?)

小菜編程成長(zhǎng)記(二 代碼規(guī)范、重構(gòu))

小菜編程成長(zhǎng)記(三 復(fù)制VS復(fù)用)

小菜編程成長(zhǎng)記(四 業(yè)務(wù)的封裝)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(五 體會(huì)簡(jiǎn)單工廠模式的美妙)

小菜編程成長(zhǎng)記(六 工廠不好用了?)

小菜編程成長(zhǎng)記(七 用“策略模式”是一種好策略)

小菜編程成長(zhǎng)記(八 反射——程序員的快樂(lè)!)

小菜編程成長(zhǎng)記(九 會(huì)修電腦不會(huì)修收音機(jī)?——聊設(shè)計(jì)模式原則)

小菜編程成長(zhǎng)記(十 三層架構(gòu),分層開發(fā))

小菜編程成長(zhǎng)記(十一 無(wú)熟人難辦事?——聊設(shè)計(jì)模式迪米特法則)

小菜編程成長(zhǎng)記(十二 有了門面,程序員的程序會(huì)更加體面!)

小菜編程成長(zhǎng)記(十三 設(shè)計(jì)模式不能戲說(shuō)!設(shè)計(jì)模式怎就不能戲說(shuō)?)


  “大鳥,搞定,這次無(wú)論你要怎么改,我都可以簡(jiǎn)單處理就行了。”小菜自信滿滿的說(shuō)。
      “是嗎,我要是需要打5折和滿500送200的促銷活動(dòng),如何辦?”
      “只要在現(xiàn)金工廠當(dāng)中加兩個(gè)條件,在界面的下拉選項(xiàng)框里加兩項(xiàng),就OK了。”
      “現(xiàn)金工廠?!你當(dāng)是生產(chǎn)鈔票呀。是收費(fèi)對(duì)象生成工廠才準(zhǔn)確。說(shuō)得不錯(cuò),如果我現(xiàn)在需要增加一種商場(chǎng)促銷手段,滿100積分10點(diǎn),以后積分到一定時(shí)候可以領(lǐng)取獎(jiǎng)品如何做?”
      “有了工廠,何難?加一個(gè)積分算法,構(gòu)造方法有兩個(gè)參數(shù):條件和返點(diǎn),讓它繼承CashSuper,再到現(xiàn)金工廠,哦,不對(duì),是收—費(fèi)—對(duì)—象—生—成—工—廠里加滿100積分10點(diǎn)的分支條件,再到界面稍加改動(dòng),就行了。”
      “嗯,不錯(cuò),那我問(wèn)你,如果商場(chǎng)現(xiàn)在需要拆遷,沒(méi)辦法,只能跳樓價(jià)銷售,商場(chǎng)的所有商品都需要打8折,打折后的價(jià)錢再每種商品滿300送50,最后計(jì)總價(jià)的時(shí)候,商場(chǎng)還滿1000送200,你說(shuō)如何辦?”
      “搞沒(méi)搞錯(cuò)哦,這商場(chǎng)不如白送得了,哪有這樣促銷的?老板跳樓時(shí)估計(jì)都得赤條條的了。”
      “商場(chǎng)大促銷你還不高興呀!當(dāng)然,你是軟件開發(fā)者,客戶老是變動(dòng)需求的確不爽,但你不能不讓客戶提需求呀,我不是說(shuō)過(guò)嗎,需求的變更是必然!所以開發(fā)者應(yīng)該的是考慮如何讓自己的程序更能適應(yīng)變化,而不是抱怨客戶的無(wú)理,客戶不會(huì)管程序員加班時(shí)的汗水,也不相信程序員失業(yè)時(shí)的眼淚,因?yàn)榭蛻糇约赫跒樽约旱姆叛u而流淚呀。”
      大鳥接著說(shuō):“簡(jiǎn)單工廠模式雖然也能解決這個(gè)問(wèn)題,但的確不是最好的辦法,另外由于商場(chǎng)是可能經(jīng)常性的更改打折額度和返利額度,每次更改都需要改寫代碼重新編譯部署真的是很糟糕的處理方式,面對(duì)算法的時(shí)常變動(dòng),應(yīng)該有更好的辦法。好好去研究一下設(shè)計(jì)模式吧,推薦你看一本書,《深入淺出設(shè)計(jì)模式》,或許你看完第一章,就會(huì)有解決辦法了。
        小菜進(jìn)入了沉思中……

(待續(xù))本例C#源代碼
  另:建議大家去閱讀《深入淺出設(shè)計(jì)模式》,第一章下載,本人非常喜歡這本書的風(fēng)格,這是真正的做到了深入淺出呀。我也希望自己可以用類似的方式講述問(wèn)題。

  本文還有一個(gè)用意是對(duì)一些初學(xué)者,可以考慮一下大鳥提出的問(wèn)題,在我的下一篇《小菜編程成長(zhǎng)記八》出來(lái)之前,改寫我的源代碼,實(shí)現(xiàn)更靈活更方便的商場(chǎng)收銀程序共享給大家討論,或許您寫的東東比我寫的還要好,那樣就大家都有提高了。程序不是看出來(lái)的,是寫出來(lái)的。好好加油!

NET技術(shù)小菜編程成長(zhǎng)記(六 工廠不好用了?),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲一区中文字幕在线观看 | 日韩精品久久 | 国产91丝袜在线播放 | 99热精品在线 | 亚洲国产一区二区三区在线观看 | 精品99久久久久久 | 欧美综合久久 | 成人在线观看网站 | 国产精品自拍视频 | 日韩精品一区二区三区中文在线 | 国产一级视频在线播放 | 人成在线 | 国产成人精品一区二区三区在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 国产一级片久久久 | 精品毛片视频 | 亚洲天天干 | 日韩一区二区在线观看 | 自拍亚洲 | 国产你懂的在线观看 | 欧美成人猛片aaaaaaa | 日韩精品色网 | 一级特黄色毛片 | 国产福利免费视频 | 99国产精品久久久久老师 | 在线免费观看成人 | 国产成人精品久久二区二区91 | 免费在线观看黄视频 | 91精品亚洲 | 日日射夜夜骑 | 五月天激情综合网 | 亚洲精品三级 | 国产 日韩 欧美 中文 在线播放 | 色综合一区二区三区 | 久久精品日 | 中文字幕日本一区二区 | 日本黄色一级视频 | 国产精品欧美精品日韩精品 | 国产日韩欧美综合 | 国产www在线 | 国产福利在线视频 |