学习版本3.5.2
对象适配器模式中,适配器中存一个需要被适配的类的对象,调用该对象的方法来实现。
类适配器模式中,适配器继承需要被适配的类和目标类。
例子:原本有一个用来打印信息的类,现在需要一个新的打印格式,在不修改原来的类的情况下,使用新的打印格式
#对象适配器模式
class OriginalPrint(object):
def myprint(self, str1, str2):
print(str1+str2)
class TargetPrint(object):
def newprint(self, str):
print("="*20)
print(str)
class Adapter(OriginalPrint):
def __init__(self, target_print):
self.target_print = target_print
def myprint(self, str1, str2):
self.target_print.newprint(str1+str2)
if __name__ == "__main__":
ori = OriginalPrint()
ori.myprint("hello","world")
ori = Adapter(TargetPrint())
ori.myprint("hello","world")
运行结果
helloworld
====================
helloworld
#类适配器模式
class OriginalPrint(object):
def myprint(self, str1, str2):
print(str1+str2)
class TargetPrint(object):
def newprint(self, str):
print("="*20)
print(str)
class Adapter(OriginalPrint, TargetPrint):
def myprint(self, str1, str2):
super(Adapter, self).newprint(str1+str2)
if __name__ == "__main__":
ori = OriginalPrint()
ori.myprint("hello","world")
ori = Adapter()
ori.myprint("hello","world")
运行结果
helloworld
====================
helloworld