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代码使其加快作用域内的查找
Mar 30 Python
Python修改MP3文件的方法
Jun 15 Python
利用ctypes提高Python的执行速度
Sep 09 Python
Python打包可执行文件的方法详解
Sep 19 Python
Python基础中所出现的异常报错总结
Nov 19 Python
利用python画一颗心的方法示例
Jan 31 Python
Flask解决跨域的问题示例代码
Feb 12 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
python argparser的具体使用
Nov 10 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
python实点云分割k-means(sklearn)详解
May 28 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笔记 字符串处理
2010/10/19 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php经典算法集锦
2015/11/14 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
执行iframe中的javascript方法
2008/10/07 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
python实现实时监控文件的方法
2016/08/26 Python
Python 基础教程之包和类的用法
2017/02/23 Python
深入理解Python3中的http.client模块
2017/03/29 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python日志处理模块logging用法解析
2020/05/19 Python
详解Python IO编程
2020/07/24 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
英国在线泳装店:Simply Swim
2019/05/05 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
怎么写好自荐书
2014/03/02 职场文书
外贸专业求职信
2014/03/09 职场文书
企业年会主持词
2014/03/27 职场文书
收款委托书
2014/10/14 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js