1 adapter
class Cat:
def __init__(self):
self.name = "cat"
def mom(self):
print("mom!")
class Dog:
def __init__(self):
self.name = "dog"
def bark(self):
print("bark!")
class Adapter:
def __init__(self, o, **adapted_methods):
"""set adapted methods in self's dict"""
self.obj = o
self.__dict__.update(adapted_methods)
def __getattr__(self, item):
"""pass non-adapted methods to self.object"""
return getattr(self.obj, item)
def adapter_test():
objects = []
dog = Dog()
objects.append(Adapter(dog, make_noise=dog.bark))
cat = Cat()
objects.append(Adapter(cat, make_noise=cat.mom))
for obj in objects:
print(obj.name)
obj.make_noise()
if __name__ == '__main__':
adapter_test()
TODO: other patterns
本文通过实例演示了适配器模式在Python中的应用,展示了如何使用适配器将不兼容的接口转换为客户端期望的接口,使原本由于接口不兼容而不能一起工作的类可以一起工作。
1235

被折叠的 条评论
为什么被折叠?



