Python设计模式之桥接模式原理与用法实例分析


Posted in Python onJanuary 10, 2019

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

桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化.

下面是一个桥接模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大话设计模式
设计模式——桥接模式
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化.
程序实例:手机软件的分类 和 手机品牌的分类 耦合度低 两种分类中间用一个set_handsetsoft桥接,各自的变化,不影响其他分类
"""
# 抽象手机软件类
class HandsetSoft(object):
  def run(self):
    pass
#具体游戏类,游戏是手机软件,继承抽象手机软件类
class HandsetGame(HandsetSoft):
  def run(self):
    print "运行手机游戏"
#手机通讯录
class HandsetAddressList(HandsetSoft):
  def run(self):
    print "运行通信录"
#抽象手机品牌类
class HandsetBrand(object):
  def __init__(self):
    self.soft = ""
  def set_handsetsoft(self,soft):
    self.soft = soft
  def run(self):
    pass
# 手机品牌N
class HandsetBrandN(HandsetBrand):
  def run(self):
    self.soft.run()
# 手机品牌M
class HandsetBrandM(HandsetBrand):
  def run(self):
    self.soft.run()
if __name__ == "__main__":
  game = HandsetGame()
  address = HandsetAddressList()
  phoneN = HandsetBrandN()
  phoneN.set_handsetsoft(game)
  phoneN.run()
  phoneM = HandsetBrandM()
  phoneM.set_handsetsoft(address)
  phoneM.run()

运行结果:

Python设计模式之桥接模式原理与用法实例分析

上面类的设计如下图

Python设计模式之桥接模式原理与用法实例分析

桥接模式的核心意图就是把类的实现独立出来,让他们各自变化。这样使每种实现的变化不会影响其他实现,从而达到应对变化的目的

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

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

Python 相关文章推荐
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
pandas每次多Sheet写入文件的方法
Dec 10 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
如何使用python代码操作git代码
Feb 29 Python
python 多线程死锁问题的解决方案
Aug 25 Python
学习Python需要哪些工具
Sep 04 Python
python Xpath语法的使用
Nov 26 Python
Python opencv缺陷检测的实现及问题解决
Apr 24 Python
python缺失值的解决方法总结
Jun 09 Python
Python基础教程之异常详解
Jan 10 #Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 #Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 #Python
pandas ix &iloc &loc的区别
Jan 10 #Python
python 移动图片到另外一个文件夹的实例
Jan 10 #Python
python将处理好的图像保存到指定目录下的方法
Jan 10 #Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 #Python
You might like
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
Python中字典和集合学习小结
2017/07/07 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
党员个人年度总结
2015/02/14 职场文书
大学生党员自我评价
2015/03/04 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python