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安装路径以及安装包路径小技巧
Apr 28 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
python 默认参数问题的陷阱
Feb 29 Python
Python使用gensim计算文档相似性
Apr 10 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python TestCase中的断言方法介绍
May 02 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
python3中sys.argv的实例用法
Apr 24 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 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
重置版战役片段
2020/04/09 魔兽争霸
FleaPHP的安全设置方法
2008/09/15 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
use jscript List Installed Software
2007/06/11 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Python中Random和Math模块学习笔记
2015/05/18 Python
python matplotlib画图实例代码分享
2017/12/27 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
python 字符串常用方法汇总详解
2019/09/16 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
毕业生的自我评价分享
2013/12/18 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
晚会主持词开场白
2014/03/17 职场文书
委托书怎么写
2014/07/31 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
大学同学聚会感言
2015/07/30 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
Win11 BitLocker 驱动器加密
2022/04/19 数码科技