一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

系列文章導航:

四大發明之活字印刷——面向對象思想的勝利

小菜編程成長記(一 面試受挫——代碼無錯就是好?)

小菜編程成長記(二 代碼規范、重構)

小菜編程成長記(三 復制VS復用)

小菜編程成長記(四 業務的封裝)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

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

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

小菜編程成長記(八 反射——程序員的快樂!)

小菜編程成長記(九 會修電腦不會修收音機?——聊設計模式原則)

小菜編程成長記(十 三層架構,分層開發)

小菜編程成長記(十一 無熟人難辦事?——聊設計模式迪米特法則)

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

小菜編程成長記(十三 設計模式不能戲說!設計模式怎就不能戲說?)


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

代碼樣例(可使用):

  商場收銀系統v1.0關鍵代碼如下:

Code

系列文章導航:

四大發明之活字印刷——面向對象思想的勝利

小菜編程成長記(一 面試受挫——代碼無錯就是好?)

小菜編程成長記(二 代碼規范、重構)

小菜編程成長記(三 復制VS復用)

小菜編程成長記(四 業務的封裝)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

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

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

小菜編程成長記(八 反射——程序員的快樂!)

小菜編程成長記(九 會修電腦不會修收音機?——聊設計模式原則)

小菜編程成長記(十 三層架構,分層開發)

小菜編程成長記(十一 無熟人難辦事?——聊設計模式迪米特法則)

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

小菜編程成長記(十三 設計模式不能戲說!設計模式怎就不能戲說?)


“這下可以了吧,只要我事先把商場可能的打折都做成下拉選擇框的項,要變化的可能性就小多了。”小菜說道。
      “這比剛才靈活性上是好多了,不過重復代碼很多,像Convert.ToDouble(),你這里就寫了8遍,而且4個分支要執行的語句除了打折多少以外幾乎沒什么不同,應該考慮重構一下。不過還不是最主要的,現在我的需求又來了,商場的活動加大,需要有滿300返100的促銷算法,你說怎么辦?”
       “滿300返100,那要是700就要返200了?這個必須要寫函數了吧?”
       “小菜呀,看來之前教你的白教了,這里面看不出什么名堂嗎?”   
       “哦!我想起來了,你的意思是簡單工廠模式是吧,對的對的,我可以先寫一個父類,再繼承它實現多個打折和返利的子類,利用多態,完成這個代碼。”
       “你打算寫幾個子類?”
       “根據需求呀,比如8折、7折、5折、滿300送100、滿200送50……要幾個寫幾個。”
       “小菜又不動腦子了,有必要這樣嗎?如果我現在要3折,我要滿300送80,你難道再去加子類?你不想想看,這當中哪些是相同的,哪些是不同的?”
       “對的,這里打折基本都是一樣的,只要有個初始化參數就可以了。滿幾送幾的,需要兩個參數才行,明白,現在看來不麻煩了。”
        “面向對象的編程,并不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的對象的抽象集合才是類 。打一折和打九折只是形式的不同,抽象分析出來,所有的打折算法都是一樣的,所以打折算法應該是一個類。好了,空話已說了太多,寫出來再是真的懂。”

   大約1個小時后,小菜交出了第三份的作業

  商場收銀系統v1.3關鍵代碼如下:

Code

系列文章導航:

四大發明之活字印刷——面向對象思想的勝利

小菜編程成長記(一 面試受挫——代碼無錯就是好?)

小菜編程成長記(二 代碼規范、重構)

小菜編程成長記(三 復制VS復用)

小菜編程成長記(四 業務的封裝)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

小菜編程成長記(五 體會簡單工廠模式的美妙)

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

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

小菜編程成長記(八 反射——程序員的快樂!)

小菜編程成長記(九 會修電腦不會修收音機?——聊設計模式原則)

小菜編程成長記(十 三層架構,分層開發)

小菜編程成長記(十一 無熟人難辦事?——聊設計模式迪米特法則)

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

小菜編程成長記(十三 設計模式不能戲說!設計模式怎就不能戲說?)


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

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

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

NET技術小菜編程成長記(六 工廠不好用了?),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 一道精品视频一区二区三区男同 | 日韩三级一区二区 | 国产精品女在线观看 | 六月丁香在线播放 | 最新97超级碰碰碰碰久久久久 | 国产福利写真视频在线观看 | 国产玖玖玖精品视频 | 国产成人亚洲综合小说区 | 好吊免费视频 | 久久青青草原精品国产软件 | youjizz日韩| 亚洲精品高清国产一线久久97 | 国产福利在线免费观看 | 国产小视频免费在线观看 | 美女视频黄色 | 91色视频在线观看 | 日本不卡一区二区三区四区 | 亚洲一区二区免费在线观看 | 日本在线视频www色 日本在线视频免费观看 | 一二三四在线观看视频中国 | 美女又美女又黄又免费网站 | 李雅在线观看一区国产 | 一本一本久久a久久综合精品蜜桃 | 婷婷六月激情在线综合激情 | 国产精品视频区 | 久久久久久久91精品免费观看 | 久久国产一级毛片一区二区 | 91av国产视频 | 精品视频在线观看免费 | 精品国产精品国产偷麻豆 | 中文字幕佐山爱一区二区免费 | 涩涩爱网站 | 91极品视频在线观看 | 91精品国产乱码久久久久久 | 视频在线观看黄 | 91精品国产麻豆国产自产在线 | 色多多免费在线观看 | 国产一区视频在线免费观看 | xxxxx色| 亚洲精品亚洲人成在线播放 | 国产精品美女久久久久 |