設計模式 python實現 策略模式

2021-09-13 02:58:22 字數 1383 閱讀 7585

策略模式簡單說和小時候我們玩的玩具差不多,一堆零部件通過不同的拼湊構成幾個不同的機械人。

我們買了乙個機械人,同時這個機械人配了三把**,三把**可以替換使用

在例項中,我們先創造乙個人,天生自帶人手

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("抓你")

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()

將相同提取,將變化拆分

設計模式python實現 02 策略模式

面對演算法時常變動 策略模式 author panky import abc class cashsuper metaclass abc.abcmeta 現金收費抽象類 abc.abstractmethod def accept cash self,money pass class cashnorm...

大話設計模式Python實現 策略模式

策略模式 strategy pattern 它定義了演算法家族,分別封裝起來,讓他們之間可以相互替換,此模式讓演算法的變化,不會影響到使用演算法的客戶.下面是乙個商場活動的實現 1 usr bin env python2 coding utf 8 34 author andy 5 6 大話設計模式 ...

JAVA設計模式(十七)設計模式之策略設計模式

本章講解設計模式中策略設計模式的相關知識 1.概念 在策略模式 strategy pattern 中,乙個類的行為或其演算法可以在執行時更改。這種型別的設計模式屬於行為型模式。在策略模式中,我們建立表示各種策略的物件和乙個行為隨著策略物件改變而改變的 context 物件。策略物件改變 contex...