适配器
适配器用于将一个类暴露出的接口转换成所希望的接口,主要用于使原本因为接口不兼容的类能够协同工作。
假如有以下一个类。
class Car:
def __init__(self):
self.name = "car"
def horn(self):
return "WoWo"
但是我们希望像下面这样进行调用。
def main():
print("{0} can {1}".format(something.name, somgthing.make_noise()))
但是可以看到,类Car
中是没有make_noise()
方法的,所以需要定义下面这样一个适配器类来完成所期望的使用方式。
class Adapter(object):
def __init(self, obj, adapted_method):
self.obj = obj
self.__dict__.update(adapted_methods)
def __getattr__(self, attr):
return getattr(self.obj, attr)
def main():
vehicle = Car()
something = Adapter(vehicle, dict(make_noise=horn))
print("{0} can {1}".format(something.name, somgthing.make_noise()))