1. 适配器模式代码
class Dog(object):
def __init__(self):
self.name = "Dog"
def bark(self):
return "woof!"
class Cat(object):
def __init__(self):
self.name = "Cat"
def meow(self):
return "meow!"
class Adapter:
def __init__(self, obj, **adapted_method):
self.obj = obj
self.__dict__.update(adapted_method)
def __getattr__(self, item):
return getattr(self.obj, item)
objects = []
dog = Dog()
objects.append(Adapter(dog, make_noise=dog.bark))
cat = Cat()
objects.append(Adapter(cat, make_noise=cat.meow))
for obj in objects:
print("A {0} goes {1}".format(obj.name, obj.make_noise()))