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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
Python列表list数组array用法实例解析
Oct 28 Python
Python解决鸡兔同笼问题的方法
Dec 20 Python
Django实现快速分页的方法实例
Oct 22 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
python将字母转化为数字实例方法
Oct 04 Python
使用python实现画AR模型时序图
Nov 20 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
PyTorch: Softmax多分类实战操作
Jul 07 Python
python 三种方法提取pdf中的图片
Feb 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积分兑换接口实例
2015/02/09 PHP
php截取中文字符串函数实例
2015/02/23 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
js图片处理示例代码
2014/05/12 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
python简单实现基数排序算法
2015/05/16 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python画图学习入门教程
2016/07/01 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python 多进程、多线程效率对比
2020/11/19 Python
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
数控技术应届生求职信
2013/11/13 职场文书
文体活动总结范文
2014/05/05 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
药店营业员岗位职责
2015/04/14 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
在js中修改html body的样式
2021/11/11 Javascript
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL