设计模式(python实现):策略模式

Sophisticated 2019-06-28

策略模式简单说和小时候我们玩的玩具差不多,一堆零部件通过不同的拼凑构成几个不同的机器人。

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.总结

将相同提取,将变化拆分

相关推荐