摘要:策略模式原文地址更多設(shè)計模式系列教程更多免費(fèi)教程項目地址作者按每天一個設(shè)計模式旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現(xiàn)。
策略模式原文地址
更多《設(shè)計模式系列教程》
更多免費(fèi)教程
0. 項目地址作者按:《每天一個設(shè)計模式》旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用javascript(靠這吃飯)和python(純粹喜歡)兩種語言實現(xiàn)。誠然,每種設(shè)計模式都有多種實現(xiàn)方式,但此小冊只記錄最直截了當(dāng)?shù)膶崿F(xiàn)方式 :)
本節(jié)課代碼
《每天一個設(shè)計模式》地址
1. 什么是策略模式?策略模式定義:就是能夠把一系列“可互換的”算法封裝起來,并根據(jù)用戶需求來選擇其中一種。
策略模式實現(xiàn)的核心就是:將算法的使用和算法的實現(xiàn)分離。算法的實現(xiàn)交給策略類。算法的使用交給環(huán)境類,環(huán)境類會根據(jù)不同的情況選擇合適的算法。
2. 策略模式優(yōu)缺點在使用策略模式的時候,需要了解所有的“策略”(strategy)之間的異同點,才能選擇合適的“策略”進(jìn)行調(diào)用。
3. 代碼實現(xiàn) 3.1 python3實現(xiàn)class Stragegy(): # 子類必須實現(xiàn) interface 方法 def interface(self): raise NotImplementedError() # 策略A class StragegyA(): def interface(self): print("This is stragegy A") # 策略B class StragegyB(): def interface(self): print("This is stragegy B") # 環(huán)境類:根據(jù)用戶傳來的不同的策略進(jìn)行實例化,并調(diào)用相關(guān)算法 class Context(): def __init__(self, stragegy): self.__stragegy = stragegy() # 更新策略 def update_stragegy(self, stragegy): self.__stragegy = stragegy() # 調(diào)用算法 def interface(self): return self.__stragegy.interface() if __name__ == "__main__": # 使用策略A的算法 cxt = Context( StragegyA ) cxt.interface() # 使用策略B的算法 cxt.update_stragegy( StragegyB ) cxt.interface()3.2 javascript實現(xiàn)
// 策略類 const strategies = { A() { console.log("This is stragegy A"); }, B() { console.log("This is stragegy B"); } }; // 環(huán)境類 const context = name => { return strategies[name](); }; // 調(diào)用策略A context("A"); // 調(diào)用策略B context("B");4. 參考
策略模式-Python四種實現(xiàn)方式
Python設(shè)計模式 - 策略模式
《JavaScript設(shè)計模式和開發(fā)實踐》
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42658.html
摘要:策略模式原文地址更多設(shè)計模式系列教程更多免費(fèi)教程項目地址作者按每天一個設(shè)計模式旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現(xiàn)。 策略模式原文地址 更多《設(shè)計模式系列教程》 更多免費(fèi)教程 0. 項目地址 作者按:《每天一個設(shè)計模式》旨在初步領(lǐng)會設(shè)計模式的精髓,目前采用javascript(靠這吃飯)和python(純粹喜歡)兩種語言實現(xiàn)。誠然,每種設(shè)計模式都有多種...
摘要:彈性伸縮是指在業(yè)務(wù)需求增長時自動增加計算資源虛擬機(jī)以保證計算能力,在業(yè)務(wù)需求下降時自動減少計算資源以節(jié)省成本同時可結(jié)合負(fù)載均衡及健康檢查機(jī)制,滿足請求量波動和業(yè)務(wù)量穩(wěn)定的場景。彈性伸縮(Auto Scaling)是指在業(yè)務(wù)需求增長時自動增加計算資源(虛擬機(jī))以保證計算能力,在業(yè)務(wù)需求下降時自動減少計算資源以節(jié)省成本;同時可結(jié)合負(fù)載均衡及健康檢查機(jī)制,滿足請求量波動和業(yè)務(wù)量穩(wěn)定的場景。用戶可通...
摘要:明確了客服調(diào)度的核心問題,也知道了難點,更看到了目前的現(xiàn)狀后,我們決定打造一款自動智能的客服調(diào)度系統(tǒng)。對于社會化的云客服,我們可以做到,比如排隊數(shù)超過某值時,自動觸發(fā)云客服的應(yīng)急放班。 背景 為什么客服需要調(diào)度?阿里集團(tuán)客戶體驗事業(yè)群(CCO)目前承接了阿里集團(tuán)以及生態(tài)體的客戶服務(wù)業(yè)務(wù),我們的客戶通過各個渠道來尋求解決各類問題,每天的進(jìn)線量巨大,而且經(jīng)常伴隨著突發(fā)性進(jìn)線,比如天貓代金券...
摘要:今天,我們邀請阿里高級技術(shù)專家力君,為大家分享自動智能的客服調(diào)度系統(tǒng)。明確了客服調(diào)度的核心問題,也知道了難點,更看到了目前的現(xiàn)狀后,我們決定打造一款自動智能的客服調(diào)度系統(tǒng)。 小嘰導(dǎo)讀:提到調(diào)度,大家腦海中可能想起的是調(diào)度阿里云的海量機(jī)器資源,而對于阿里集團(tuán)客戶體驗事業(yè)群(CCO)而言,我們要調(diào)度的不是機(jī)器,而是客服資源。今天,我們邀請阿里高級技術(shù)專家力君,為大家分享自動、智能的客服調(diào)度...
閱讀 3370·2021-11-11 16:54
閱讀 3526·2021-10-11 10:58
閱讀 1265·2021-08-30 09:41
閱讀 1809·2019-08-30 15:54
閱讀 2036·2019-08-30 14:00
閱讀 2710·2019-08-29 17:13
閱讀 1678·2019-08-29 15:19
閱讀 614·2019-08-29 15:14