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 相关文章推荐
Linux下用Python脚本监控目录变化代码分享
May 21 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
一道python走迷宫算法题
Jan 22 Python
详解python3中tkinter知识点
Jun 21 Python
pytorch permute维度转换方法
Dec 14 Python
浅谈python 读excel数值为浮点型的问题
Dec 25 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python执行时间的几种计算方法
Jul 31 Python
python某漫画app逆向
Mar 31 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使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
dedecms中使用php语句指南
2014/11/13 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
JS控制表格隔行变色
2006/06/26 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
用Python写冒泡排序代码
2016/04/12 Python
python实现文件的分割与合并
2019/08/29 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
remote接口和home接口主要作用
2013/05/15 面试题
日语翻译个人求职的自我评价
2013/10/14 职场文书
超市开店计划书
2014/09/15 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL