一、概述
1、桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。
2、在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,桥接模式把这种多维度分离出来,让他们独立变化,减少之间的耦合。
感觉桥接模式的结构有点像抽象工厂模式,但桥接模式属于结构型模式,而抽象工厂模式属于创建型模式。
3、UML
4、所属类别:结构型
二、C++程序
和抽象工厂中的例子保持一致,这里还以linux、windows系统、手机、电脑为例
1 // 桥接模式.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include6 using namespace std; 7 class Ruanjian 8 { 9 public:10 Ruanjian(){}11 ~Ruanjian(){}12 virtual void OS()=0;13 };14 class Linux :public Ruanjian15 {16 public:17 Linux(){}18 virtual ~Linux(){}19 virtual void OS()20 {21 cout<<"我运行的是Linux系统"< OS();55 }56 };57 class Phone:public Yingjian58 {59 private:60 Ruanjian * software;61 public:62 Phone(Ruanjian* r)63 {64 software=r;65 }66 virtual ~Phone(){}67 virtual void run()68 {69 cout<<"我是一个Phone";70 software->OS();71 }72 };73 74 int _tmain(int argc, _TCHAR* argv[])75 {76 Linux* l=new Linux();77 Phone *p=new Phone(l);78 p->run();79 return 0;80 }