开发手册 欢迎您!
软件开发者资料库

Python设计模式 - 适配器

Python设计模式适配器 - 从简单和简单的步骤学习Python设计模式从基本到高级概念,包括简介,Python的Gist,模型视图控制器,单例,工厂,构建器,原型,外观,命令,适配器,装饰器,代理,责任链,观察员,状态,战略,模板,飞重,抽象工厂,面向对象的模式,面向对象的概念实施,迭代器模式,词典,列表数据结构,集,队列,字符串和序列化,Python中的并发,反模式, 异常处理。

适配器模式充当两个不兼容接口之间的桥梁.这种类型的设计模式属于结构模式,因为此模式结合了两个独立接口的功能.

此模式涉及单个类,它负责连接独立或不兼容接口的功能.一个真实的例子可能是读卡器的情况,它充当存储卡和笔记本电脑之间的适配器.您将存储卡插入读卡器,将读卡器插入笔记本电脑,以便通过笔记本电脑读取存储卡.

适配器设计模式有助于一起完成课程.它根据需求将类的接口转换为另一个接口.该模式包括一个多态性,它命名一个名称和多个表单.比如可以按照收集的要求使用的形状类.

有两种类型的适配器模式;

对象适配器模式

此设计模式依赖于对象实现.因此,它被称为对象适配器模式.

类适配器模式

这是实现适配器设计模式的另一种方法.该模式可以使用多个继承来实现.

如何实现适配器模式?

现在让我们看看如何实现适配器模式./p>

class EuropeanSocketInterface:   def voltage(self): pass   def live(self): pass   def neutral(self): pass   def earth(self): pass# Adapteeclass Socket(EuropeanSocketInterface):   def voltage(self):      return 230def live(self):      return 1      def neutral(self):      return -1      def earth(self):      return 0# Target interfaceclass USASocketInterface:   def voltage(self): pass   def live(self): pass   def neutral(self): pass# The Adapterclass Adapter(USASocketInterface):   __socket = None   def __init__(self, socket):      self.__socket = socket      def voltage(self):      return 110      def live(self):      return self.__socket.live()      def neutral(self):      return self.__socket.neutral()# Clientclass ElectricKettle:   __power = None      def __init__(self, power):   self.__power = power      def boil(self):      if self.__power.voltage() > 110:         print "Kettle on fire!"      else:         if self.__power.live() == 1 and \            self.__power.neutral() == -1:            print "Coffee time!"         else:            print "No power."def main():   # Plug in   socket = Socket()   adapter = Adapter(socket)   kettle = ElectricKettle(adapter)   # Make coffee   kettle.boil()   return 0if __name__ == "__main__":   main()

输出

上述程序生成以下输出 :

适配器模式

解释

代码包含各种适配器接口参数和属性.它包括Adaptee以及实现所有属性的Target接口,并将输出显示为可见.