所谓适配器模式是指是一种接口适配技术,它可通过某个类来使用另一个接口与之不兼容的类,运用此模式,两个类的接口都无需改动。
适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况,比如在需要对早期代码复用一些功能等应用上很有实际价值。
结构图:
其中Target
是用户期望的标准类,而Adaptee
是我们需要匹配的类,二者通过Adapter
匹配起来。
代码如下:
#!/usr/bin/env python
# encoding: utf-8
class Target(object):
def request(self):
print 'Target request'
class Adaptee(object):
def specialRequest(self):
print 'Adaptee specialRequest'
class Adpater(object):
def __init__(self, adpatee):
self.adpatee = adpatee
def request(self):
self.adpatee.specialRequest()
if __name__ == '__main__':
objects = []
a = Target()
b = Adaptee()
objects.append(a)
objects.append(Adpater(b)) #适配接口
for obj in objects:
obj.request() #调用相同接口