大话设计模式Python实现-适配器模式
适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.
下面是一个适配器模式的demo:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 __author__ = 'Andy' 5 """ 6 大话设计模式 7 设计模式——适配器模式 8 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 9 应用场景:系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况 10 """ 11 class Target(object): 12 13 def request(self): 14 print "普通请求" 15 16 class Adaptee(object): 17 18 def specific_request(self): 19 print "特殊请求" 20 21 class Adapter(Target): 22 23 def __init__(self): 24 self.adaptee = Adaptee() 25 26 def request(self): 27 self.adaptee.specific_request() 28 29 if __name__ == "__main__": 30 target = Adapter() 31 target.request()
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 __author__ = 'Andy' 5 """ 6 大话设计模式 7 设计模式——适配器模式 8 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 9 应用场景:系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况 10 """ 11 class Target(object): 12 13 def request(self): 14 print "普通请求" 15 16 class Adaptee(object): 17 18 def specific_request(self): 19 print "特殊请求" 20 21 class Adapter(Target): 22 23 def __init__(self): 24 self.adaptee = Adaptee() 25 26 def request(self): 27 self.adaptee.specific_request() 28 29 if __name__ == "__main__": 30 target = Adapter() 31 target.request()
上面类的设计如下图:
系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况
作者:Andy
出处:http://www.cnblogs.com/onepiece-andy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。