不要求访问其他接口的源代码
不违反开放/封闭原则
定义适配器
class Adapter:
def __init__(self,obj,obj_method):
self.obj = obj
self.__dict__.update(obj_method)
def __str__(self):
return str(self.obj)
- 使用适配器
objects = [Computer('Asus')]
tv = TV('samsung')
objects.append(Adapter(tv,dict(excute=tv.play))
human = Human('Bob')
objects.append(Adapter(human,dict(excute=human.speak)))
for i in objects:
print(f"{str(i)} {i.execute()}")