Sophisticated 2019-06-28
策略模式简单说和小时候我们玩的玩具差不多,一堆零部件通过不同的拼凑构成几个不同的机器人。
我们买了一个机器人,同时这个机器人配了三把武器,三把武器可以替换使用
在实例中,我们先创造一个人,天生自带人手
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()
将相同提取,将变化拆分