python设计模式之桥接模式
来源:互联网 发布:mysql注入式攻击 编辑:程序博客网 时间:2024/05/21 23:45
python设计模式之桥接模式
意图
- 将抽象部分与它的实现部分分离,使它们都可以独立地变化
适用性
- 你不希望在抽象和它的实现部分之间有一个固定的绑定关系,比如可能在程序运行时刻,实现部分应可以被选择或者切换
- 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充,这时Bridge 模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充
例子
以画圆为例,如下
# -*- coding:utf-8 -*-__author__ = 'Ricky'class DrawingAPI1(object): """ 实现类1 """ def draw_circle(self, x, y, radius): print ('API1.cicle at {}:{} radius {}'.format(x, y, radius))class DrawingAPI2(object): """ 实现类2 """ def draw_circle(self, x, y, radius): print ('API2.cicle at {}:{} radius {}'.format(x, y, radius))class CicleShape(object): """ 抽象类 """ def __init__(self, x, y, radius, drawing_api): self._x = x self._y = y self._radius = radius self._drawing_api = drawing_api def draw(self): """ 对外提供公用接口 :return: """ self._drawing_api.draw_circle(self._x, self._y, self._radius) def scale(self, pct): """ 设置大小 :param pct: :return: """ self._radius *= pctif __name__ == '__main__': shapes = ( CicleShape(1, 2, 3, DrawingAPI1()), CicleShape(5, 7, 11, DrawingAPI2()), ) for shape in shapes: shape.scale(2.5) shape.draw()output:API1.cicle at 1:2 radius 7.5API2.cicle at 5:7 radius 27.5
阅读全文
0 0
- python设计模式之桥接模式
- python设计模式之桥接模式
- Python的结构型设计模式之桥接模式
- 设计模式之桥接模式Python实现
- Python设计模式(四)【桥接模式】
- Python设计模式-桥接模式
- python设计模式之设计模式简介
- python设计模式之状态设计模式
- python设计模式 之 简单工厂模式
- python 设计模式之 单例模式
- python设计模式之访问者模式
- python设计模式之备忘录模式
- python设计模式之对象池模式
- python设计模式之代理模式
- python设计模式之模板方法模式
- python设计模式之Null模式
- python设计模式之组合模式
- python设计模式之责任链模式
- 谈谈数据库连接池的原理
- python:2:字符串基本用法及相关函数
- 高性能JavaScript--字符串加(+)和加等(+=)操作符优化方法
- windows钩子函数
- 九度[1029]-魔咒词典
- python设计模式之桥接模式
- 动态代理
- HDU_2859_Phalanx
- poj3254 Corn Fields(状态压缩)
- LeetCode Problem2解题报告
- shell学习十二--变量输入read
- android 动态权限获取
- 引用?操作?指针!!
- 嵌入式Linux学习笔记(二)