摘要:策略模式簡單說和小時候我們玩的玩具差不多,一堆零部件通過不同的拼湊構成幾個不同的機器人。
策略模式簡單說和小時候我們玩的玩具差不多,一堆零部件通過不同的拼湊構成幾個不同的機器人。
1.舉個栗子我們買了一個機器人,同時這個機器人配了三把武器,三把武器可以替換使用
2.Show in Code在實例中,我們先創造一個人,天生自帶人手
class People: def __init__(self, hand = None): self.name = "人手" if hand is not None: self.execute = types.MethodType(hand, self) def execute(self): #安裝部件的位置 print(self.name)
現在我們再給他創建兩個備用的手,一個pighand、一個cathand
//創造豬手 def pighand(self): print(self.name + " 用豬手") print("拱你") //創造貓爪 def cathand(self): print(self.name + " 用貓爪") print("抓你")3.完整代碼
import types //創造一個人 class People: def __init__(self, hand = None): self.name = "人手" if hand is not None: self.execute = types.MethodType(hand, self) def execute(self): #安裝部件的位置 print(self.name) //創造豬手 def pighand(self): print(self.name + " 用豬手") print("拱你") //創造貓爪 def cathand(self): print(self.name + " 用貓爪") print("抓你") if __name__ == "__main__": hand0 = People() #用豬手替換人手 hand1 = People(pighand) hand1.name = "豬手" #用貓爪替換ren"hsou hand2 = People(cathand) hand2.name = "貓爪" hand0.execute() hand1.execute() hand2.execute()4.總結
將相同提取,將變化拆分
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44782.html
摘要:本篇主要講述中使用函數來實現策略模式和命令模式,最后總結出這種做法背后的思想。 《流暢的Python》筆記。本篇主要講述Python中使用函數來實現策略模式和命令模式,最后總結出這種做法背后的思想。 1. 重構策略模式 策略模式如果用面向對象的思想來簡單解釋的話,其實就是多態。父類指向子類,根據子類對同一方法的不同重寫,得到不同結果。 1.1 經典的策略模式 下圖是經典的策略模式的U...
摘要:策略模式原文地址更多設計模式系列教程更多免費教程項目地址作者按每天一個設計模式旨在初步領會設計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現。 策略模式原文地址 更多《設計模式系列教程》 更多免費教程 0. 項目地址 作者按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript(靠這吃飯)和python(純粹喜歡)兩種語言實現。誠然,每種設計模式都有多種...
摘要:策略模式原文地址更多設計模式系列教程更多免費教程項目地址作者按每天一個設計模式旨在初步領會設計模式的精髓,目前采用靠這吃飯和純粹喜歡兩種語言實現。 策略模式原文地址 更多《設計模式系列教程》 更多免費教程 0. 項目地址 作者按:《每天一個設計模式》旨在初步領會設計模式的精髓,目前采用javascript(靠這吃飯)和python(純粹喜歡)兩種語言實現。誠然,每種設計模式都有多種...
摘要:在復雜的情況下,需要具體策略維護內部狀態時,可能需要把策略和享元模式結合起來。函數比用戶定義的類的實例輕量,而且無需使用享元模式,因為各個策略函數在編譯模塊時只會創建一次。 一等函數實現設計模式 經典的策略模式定義 定義一系列算法,把它們一一封裝起來,并且使它們可以相互替換。本模式使得算法可以獨立于使用它的客戶而變化。 案例 假如一個網店制定了下述折扣規則。 有 1000 或以上積分...
摘要:前言合理使用作為一等對象的函數,可以使某種設計模式得以簡化。本例中這個抽象類扮演這個角色。此外,策略實例沒有狀態實例屬性使用函數代替抽象類,每個策略都是函數,不必實例化,拿來即用。 前言 合理使用作為一等對象的函數,可以使某種設計模式得以簡化。 關于策略 定義一系列算法,把它們一一封裝起來,并且使它們可以相互替換。 一個策略模式的示例 規則 1 有1000或以上積分的客戶,每個訂單享...
閱讀 654·2019-08-30 15:44
閱讀 1380·2019-08-30 11:02
閱讀 2980·2019-08-29 18:42
閱讀 3506·2019-08-29 16:16
閱讀 1720·2019-08-26 13:55
閱讀 1769·2019-08-26 13:45
閱讀 2385·2019-08-26 11:43
閱讀 3247·2019-08-26 10:32