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 Web开发模板引擎优缺点总结
May 06 Python
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python常用模块用法分析
Sep 08 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
python利用微信公众号实现报警功能
Jun 10 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
python基础教程之while循环
Aug 14 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
python中reload重载实例用法
Dec 15 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
session 加入redis的实现代码
2016/07/15 PHP
网上抓的一个特效
2007/05/11 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
python实现趣味图片字符化
2019/04/30 Python
Django框架实现的分页demo示例
2019/05/25 Python
Python创建或生成列表的操作方法
2019/06/19 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
tensorflow之并行读入数据详解
2020/02/05 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
Python如何获取文件路径/目录
2020/09/22 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
工程材料采购方案
2014/05/18 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
mysql sock文件存储了什么信息
2022/07/15 MySQL