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