设计模式_桥接模式
来源:互联网 发布:粒子群优化算法 编辑:程序博客网 时间:2024/06/06 20:08
桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
使用场景:
1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。
2、对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
3、一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。
我们通过下面的实例来演示桥接模式(Bridge Pattern)的用法。其中,可以使用相同的抽象类方法但是不同的桥接实现类,来画出不同颜色的图形。
#ifndef _BRIDGE_H_#define _BRIDGE_H_#include<iostream>class XColor{public: virtual void draw() = 0;};class Red: public XColor{public: void draw() override { std::cout<< " draw red"<< std::endl; }};class Green : public XColor{public: void draw() override { std::cout << " draw green" << std::endl; }};class XShap{public: XShap(XColor* pColor):color(pColor) {} virtual void drawColor() =0;protected: XColor* color;};class Rectangle: public XShap{public: Rectangle( XColor *pColor ):XShap(pColor) {}; void drawColor() override { std::cout << "rectangle:"; color->draw(); }};class Circle: public XShap{public: Circle( XColor *pColor ):XShap(pColor) {}; void drawColor() override { std::cout << "circle:"; color->draw(); }};#endifint main(){ XColor* red = new Red(); XColor* green = new Green(); XShap* rectangle= new Rectangle(red); rectangle->drawColor(); XShap* circle = new Circle(green); circle->drawColor(); return 0; }
1 0
- 大话设计模式_桥接模式
- 设计模式_桥接模式(C++)
- 设计模式_桥接模式
- 设计模式06_桥接模式
- java设计模式_桥接模式
- 设计模式_桥接模式
- 设计模式_桥接模式(13)
- 转载_设计模式_桥接模式
- Java设计模式_(结构型)_桥接模式
- 设计模式:22 手机软件何时统一_桥接模式
- 大话设计模式_桥接模式c++实现
- java设计模式08_桥接模式
- Java设计模式_结构型_桥接模式_以不变应万变
- 设计模式_工厂模式
- 设计模式_策略模式
- 设计模式_观察者模式
- 设计模式_迭代器模式
- 设计模式_策略模式
- Oracle中Blob读取
- 河南省第九届acm省赛 A:表达式求值 逆波兰表达式
- Mysql 操作及语句汇总
- gift
- GLSL 内建变量
- 设计模式_桥接模式
- 什么是EPEL 及 Centos上安装EPEL
- comboBox&listBox
- 栈实现迷宫
- POI 设置字体多种颜色
- [BZOJ1029][JSOI2007]建筑抢修(贪心+堆)
- mac下安装使用gdb调试
- phoneline
- 垃圾回收机制