策略模式:定義了乙個演算法家族,將多種演算法分別封裝起來,讓它們之間可以相互替換。
策略模式讓演算法的變化,不會影響到使用演算法的客戶
print("演算法a實現")
class concretestrategyb(strategy):
def algorithminte***ce(self):
print("演算法b實現")
class context:
def __init__(self, strategy):
self.m_strategy = strategy
def contextinte***ce(self):
if self.m_strategy:
self.m_strategy.algorithminte***ce()
c = context(concretestrategya())
c.contextinte***ce()
其輸出為:
演算法a實現
設計模式之策略模式的Python實現
1.策略模式解決的是什麼問題 策略模式解決的應用場景是這樣的 在業務場景中,需要用到多個演算法,並且每個演算法的引數是需要調整的。那麼當不同的行為堆砌到同乙個類中時,我們很難避免使用條件語句來選擇合適的行為。我們需要解決的是把演算法封裝起來,達到演算法的變化不會影響到使用演算法的客戶的效果。實際上就...
設計模式 python實現 策略模式
策略模式簡單說和小時候我們玩的玩具差不多,一堆零部件通過不同的拼湊構成幾個不同的機械人。我們買了乙個機械人,同時這個機械人配了三把 三把 可以替換使用 在例項中,我們先創造乙個人,天生自帶人手 class people def init self,hand none self.name 人手 if ...
設計模式python實現 02 策略模式
面對演算法時常變動 策略模式 author panky import abc class cashsuper metaclass abc.abcmeta 現金收費抽象類 abc.abstractmethod def accept cash self,money pass class cashnorm...