python实现Adapter模式实例代码

本文研究的主要是python实现Adapter模式的相关内容,具体实现代码如下。

Adapter模式有两种实现方式一种是类方式。

#理解
#就是电源适配器的原理吧,将本来不兼容的接口类能够工作
#这个是类实现方式
#例子
#假如一个插座类输出脚是3脚的,而台灯需要的是两脚插座,现在就需要一个Adapter实现适配插座
#Adaptee
class socket(object):
  def Trigle(self):
    print 'power supply'
#target
class tableLamp(object):
  def needTwo(self):
    pass
#adapter
class Adapter(tableLamp,socket):
  def needTwo(self):
    self.Trigle()
#client
if __name__=='__main__':
  lamp=Adapter()
  lamp.needTwo() 

运行如图

第二种是对象方式。

#这个是对象实现方式
class socket(object):
  def Trigle(self):
    print 'power supply over'
#target
class tableLamp(object):
  def needTwo(self):
    pass
#adapter
class Adapter(tableLamp):
  def __init__(self,Socket):
    self.socket=Socket
  def needTwo(self):
    self.socket.Trigle()
#client
if __name__=='__main__':
  plug=socket()
  lamp=Adapter(plug)
  lamp.needTwo() 

运行如图:

总结

以上就是本文关于python实现Adapter模式实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

您可能感兴趣的文章:

  • Python设计模式编程中Adapter适配器模式的使用实例
时间: 2018-02-07

Python设计模式编程中Adapter适配器模式的使用实例

将一个类的接口转换成客户希望的另外一个接口.使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 应用场景:希望复用一些现存的类,但是接口又与复用环境要求不一致. 模式特点:将一个类的接口转换成为客户希望的另外一个接口. 分类:类适配器(通过多重继承).对象适配器. 来通过例子说明,下面是用户通过适配器使用一个类的方法 class Target: def Request(): print "common request." class Adaptee(Target): def S

C#设计模式编程中运用适配器模式结构实战演练

在实际的软件系统设计和开发中,为了完成某项工作需要购买一个第三方的库来加快开发.这带来一个问题,在应用程序中已经设计好的功能接口,与这个第三方提供的接口不一致.为了使得这些接口不兼容的类可以在一起工作,适配器模式提供了一种接口的适配机制. 适配器模式的设计思想在生活中经常会应用到,如我们在给手机充电的时候,不可能直接在220V电源上直接充电,而是用手机充电器转换成手机需要的电压才可以正常充电,否则就不可以完成充电,这个充电器就起到了适配的作用. 适配器模式结构实现 1.类适配器结构实现 ITar

实例解析Java设计模式编程中的适配器模式使用

平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,同时也想用另外一个类的方法.有一个解决方法是,修改它们各自的接口,但是这是我们最不愿意看到的.这个时候Adapter模式就会派上用场了. Adapter模式也叫适配器模式,是由GoF提出的23种设计模式的一种.Adapter模式是构造型模式之一,通过Adapter模式,可以改变已有类(或外部类)的接口形式. 适配器 模式 有三种方式,一种是对象适配器,一种是类适配器, 一种是接口适配器 以下

举例讲解Python设计模式编程中对抽象工厂模式的运用

抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 优点:易于交换"产品系列",只要更改相应的工厂即可. 缺点:建立产品的时候很繁琐,需要增加和修改很多东西. 优化1:为了避免客户端有过多的逻辑判断,可以封装出一个简单工厂类来生成产品类. 优化2:为了减少简单工厂类里面的逻辑判断,可以采用"反射"机制,直接根据外部的配置文件读取出需要使用产品类的信息. #encoding=utf-8 # #by panda #抽象工厂模式 def p

Python设计模式编程中的备忘录模式与对象池模式示例

Memento备忘录模式 备忘录模式一个最好想象的例子:undo! 它对对象的一个状态进行了'快照', 在你需要的时候恢复原貌.做前端会有一个场景:你设计一个表单,当点击提交会对表单内容 验证,这个时候你就要对用户填写的数据复制下来,当用户填写的不正确或者格式不对等问题, 就可以使用快照数据恢复用户已经填好的,而不是让用户重新来一遍,不是嘛? python的例子 这里实现了一个事务提交的例子 import copy def Memento(obj, deep=False): # 对你要做快照的对

举例讲解Python设计模式编程中的访问者与观察者模式

访问者模式 我觉得Visitor模式是在补修改已有程序结构前提下,通过添加额外的访问者完成对代码功能的拓展 为什么这样用?当你的类层次较多,在某层结构中增加新的方法,要是在基类上面添加或者变更,可能破坏原来的设计, 有兼容问题,所以只在需要的类上面动态添加. python的例子 这里是个构建车的例子,每个部件都有一个accept的方法接受我上面说的所谓'访问者',而这个访问者 以参数的方式传进来,但是其实他是一个含有一些功能的类的实例,它拥有很多个visit开头的方法对应不同的部件. 这样就不需

详解Python设计模式编程中观察者模式与策略模式的运用

观察者模式 观察者模式:又叫发布订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时,会通知所有观察者对象,是他们能自动更新自己. 代码结构 class Topic(object): """主题类.保存所有观察者实例的引用,每个主题都可以有很多观察者 可以增加和删除观察者""" def __init__(self): self.obs = [] def Attach(self, ob): se

深入解析Python设计模式编程中建造者模式的使用

建造者模式:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示. 基本思想 某类产品的构建由很多复杂组件组成: 这些组件中的某些细节不同,构建出的产品表象会略有不同: 通过一个指挥者按照产品的创建步骤来一步步执行产品的创建: 当需要创建不同的产品时,只需要派生一个具体的建造者,重写相应的组件构建方法即可. 代码结构 class Builder(object): """基类""" def Part1(self): # 不同类型

Python设计模式编程中解释器模式的简单程序示例分享

模式特点:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 我们来看一下下面这样的程序结构: class Context: def __init__(self): self.input="" self.output="" class AbstractExpression: def Interpret(self,context): pass class Expression(AbstractExpression): de

举例讲解Java设计模式编程中模板方法模式的运用实例

模板方法模式定义为: 在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤. 模板方法在基类中定义了一个操作的流程顺序,能够保证该步骤按序进行,有一些步骤的具体实现在基类中已经声明,而将一些变化的步骤的具体实现交给了子类去实现,从而就达到了延迟一些步骤到子类中,模板方法一个最大的好处就是能够设定一个业务流程能够按照一定严格的顺序执行,控制了整个算法的执行步骤. 这个方法将算法定义成一组步骤,其中凡是想让