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中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
Python实现购物车功能的方法分析
Nov 10 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
Python构建图像分类识别器的方法
Jan 12 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
去除python中的字符串空格的简单方法
Dec 22 Python
Python中的流程控制详解
Feb 18 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php auth_http类库进行身份效验
2009/03/19 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jQuery中even选择器的定义和用法
2014/12/23 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
python中join()方法介绍
2018/10/11 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python pip使用超时问题解决方案
2020/08/03 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
优秀体育委员自荐书
2014/01/31 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
《观舞记》教学反思
2014/04/16 职场文书
环保建议书600字
2014/05/14 职场文书
护理专业自荐书
2014/06/04 职场文书
个人思想政治总结
2015/03/05 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
小学安全教育主题班会
2015/08/12 职场文书
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis