Python设计模式之适配器模式原理与用法详解


Posted in Python onJanuary 15, 2019

本文实例讲述了Python设计模式之适配器模式原理与用法。分享给大家供大家参考,具体如下:

适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.

下面是一个适配器模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大话设计模式
设计模式——适配器模式
适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
应用场景:系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况
"""
class Target(object):
  def request(self):
    print "普通请求"
class Adaptee(object):
  def specific_request(self):
    print "特殊请求"
class Adapter(Target):
  def __init__(self):
    self.adaptee = Adaptee()
  def request(self):
    self.adaptee.specific_request()
if __name__ == "__main__":
  target = Adapter()
  target.request()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大话设计模式
设计模式——适配器模式
适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口.Adapter Pattern使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
应用场景:系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况
"""
class Target(object):
  def request(self):
    print "普通请求"
class Adaptee(object):
  def specific_request(self):
    print "特殊请求"
class Adapter(Target):
  def __init__(self):
    self.adaptee = Adaptee()
  def request(self):
    self.adaptee.specific_request()
if __name__ == "__main__":
  target = Adapter()
  target.request()

上面类的设计如下图:

Python设计模式之适配器模式原理与用法详解

系统数据和行为都正确,但接口不符合时,目的是使控制范围之外的一个原有对象与某个接口匹配,适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境不一致的情况

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
更改Python命令行交互提示符的方法
Jan 14 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Python代码太长换行的实现
Jul 05 Python
简单了解python代码优化小技巧
Jul 08 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
python的launcher用法知识点总结
Aug 07 Python
Python设计模式之备忘录模式原理与用法详解
Jan 15 #Python
matplotlib.pyplot绘图显示控制方法
Jan 15 #Python
python实现彩色图转换成灰度图
Jan 15 #Python
Python中new方法的详解
Jan 15 #Python
Python之循环结构
Jan 15 #Python
python实现图片彩色转化为素描
Jan 15 #Python
带你认识Django
Jan 15 #Python
You might like
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vuex存储token示例
2019/11/11 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
师范院校学生自荐信范文
2013/12/27 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
管理专员自荐信
2014/01/26 职场文书
促销活动方案模板
2014/02/24 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
倡议书作文
2015/01/19 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2015学校年度工作总结
2015/05/11 职场文书
同学聚会祝酒词
2015/08/10 职场文书
导游词之潮音寺
2019/09/26 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
详解nodejs内置模块
2021/05/06 NodeJs
使用scrapy实现增量式爬取方式
2022/06/21 Python