python设计模式(二十二):策略模式
策略模式,让一个类的行为或其算法可以在运行时更改,策略是让实例化对象动态的更改自身的某些方法使用的是types.MethodType绑定。 说起策略的动态更改方法,就不得不对比一下元类的动态增加方法,元类是类的抽象,它负责一个抽象类创建、实例化,是通过type函数来绑定方法。 假设这样的一个应用场景:一个人旅游,在不同的国家说不通的语言。 示例code: importtypesclassPeople: def__init__(self,func=None): iffunc: self.speak=types.MethodType(func,self) defspeak(self): print("说中文")defspeak_english(self): print('说英语')defspeak_german(self): print('说德语')if__name__=='__main__': test1=People() test2=People(speak_english) test3=People(speak_german) [func.speak()forfuncin[test1...
