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自动化测试实例解析
Sep 28 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
python字符串中的单双引
Feb 16 Python
使用python遍历指定城市的一周气温
Mar 31 Python
Python 爬虫图片简单实现
Jun 01 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
对numpy中array和asarray的区别详解
Apr 17 Python
python处理csv中的空值方法
Jun 22 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Selenium python时间控件输入问题解决方案
Jul 22 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
文件上传类
2006/10/09 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
php操作redis缓存方法分享
2015/06/03 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
PHP实现计算器小功能
2020/08/28 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
JS字符串截取函数实例
2013/12/27 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
就业推荐表自我鉴定
2014/03/21 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
nginx 配置缓存
2022/05/11 Servers