Python设计模式之桥接模式原理与用法实例分析

 更新时间:2019年01月10日 11:50:08   作者:Andy冉明  
这篇文章主要介绍了Python设计模式之桥接模式原理与用法,结合具体实例形式分析了Python桥接模式的相关概念、原理、定义及使用方法,需要的朋友可以参考下

本文实例讲述了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 Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python操作MySQL数据库9个实用实例

    Python操作MySQL数据库9个实用实例

    这篇文章主要介绍了Python操作MySQL数据库9个实用实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • python 调用Google翻译接口的方法

    python 调用Google翻译接口的方法

    这篇文章主要介绍了python 调用Google翻译接口的方法,帮助大家更好的理解和使用python处理url,感兴趣的朋友可以了解下
    2020-12-12
  • 深入了解Python Flask框架之蓝图

    深入了解Python Flask框架之蓝图

    这篇文章主要为大家介绍了Python Flask框架之蓝图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python函数装饰器构造和参数传递

    python函数装饰器构造和参数传递

    这篇文章主要介绍了python函数装饰器构造和参数传递,下面通过一个小案例来简单的理解什么是装饰器,需要的小伙伴可以参考一下
    2022-03-03
  • python使用turtle库绘制树

    python使用turtle库绘制树

    这篇文章主要为大家详细介绍了python使用turtle库绘制树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python爬虫之线程池的使用

    Python爬虫之线程池的使用

    这篇文章主要介绍了Python爬虫之线程池的使用,文中有非常详细的的代码示例,对正在学习python爬虫的小伙伴们很有帮助哟。需要的朋友可以参考下
    2021-05-05
  • python数据分析工具之 matplotlib详解

    python数据分析工具之 matplotlib详解

    对于 Python 来说,matplotlib 是最著名的绘图库,它主要用于二维绘图,当然也可以进行简单的三维绘图。这篇文章主要介绍了python数据分析工具之 matplotlib的相关知识,需要的朋友可以参考下
    2020-04-04
  • 解决windows下python3使用multiprocessing.Pool出现的问题

    解决windows下python3使用multiprocessing.Pool出现的问题

    这篇文章主要介绍了解决windows下python3使用multiprocessing.Pool出现的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 解读python中的类型提示(type hint)

    解读python中的类型提示(type hint)

    这篇文章主要介绍了解读python中的类型提示(type hint),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Matplotlib绘图基础之样式表详解

    Matplotlib绘图基础之样式表详解

    Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,不过经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,下面我们就来看看这些样式表的使用吧
    2023-08-08

最新评论