本篇是 Python與設(shè)計(jì)模式系列第一篇:策略模式
。
完成一項(xiàng)任務(wù)往往有多種方式,我們將其稱之為策略。
比如,超市做活動,如果你的購物積分滿1000,就可以兌換現(xiàn)金抵用券抵用10元,如果購買同一商品滿10件,就可以打9折,如果購買的金額超過500,就可以享受滿減50元的優(yōu)惠。這是三個(gè)不同的促銷策略。
再比如,聯(lián)系朋友、同學(xué),可以打電話,也可以發(fā)短信,可以發(fā)微信,也可以發(fā)郵件,這是四個(gè)不同的聯(lián)系策略。
再比如,去外出旅游,我們可以選擇火車,也可以選擇公共汽車,可以選擇飛機(jī),也可以選擇自駕游。這又是四個(gè)不同的出行策略。
以上這些真實(shí)場景,都有策略選擇模型的影子,可以考慮使用策略模式。
經(jīng)典的策略模式,是由三部分組成
Context:上下文環(huán)境類
Context:Order類,訂單信息,包括商品,價(jià)格和數(shù)量,還有購買者等
Stragety:Promotion類,抽象基類,包含一個(gè)抽象方法(計(jì)算折扣)
ContreteStragety:分三個(gè)類,F(xiàn)idelityPromo,BulkItemPromo,LargeOrderPromo,實(shí)現(xiàn)具體的折扣計(jì)算方法。
Stragety:策略基類
ConcreteStragety:具體策略
本文標(biāo)簽: 紙質(zhì)展示架定制 紙堆頭 紙堆頭廠家
咨詢熱線
18125323067