9,桥接模式(Bridge Pattern)是将抽象部分与实际部分分离,使它们都可以独立的变化。
Posted 杜东洲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9,桥接模式(Bridge Pattern)是将抽象部分与实际部分分离,使它们都可以独立的变化。相关的知识,希望对你有一定的参考价值。
Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。
它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。
适用于:
桥接模式(Bridge Pattern)是将抽象部分与实现部分分离(解耦合),使它们都可以独立的变化。
车 安装 发动机 ;不同型号的车,安装不同型号的发动机 将“车 安装 发动机”这个抽象 和 实现进行分离;两个名字 就设计两个类;
图形 填 颜色 不同形状的图形,填充上 不同的颜色 将“图形 填 颜色”这个抽象 和 实现 进行分离,两个名字,就设计两个类
1 #include <iostream> 2 using namespace std; 3 4 class Engine 5 { 6 public: 7 virtual void InstallEngine() = 0; 8 }; 9 10 class Engine4400cc : public Engine 11 { 12 public: 13 virtual void InstallEngine() 14 { 15 cout << "我是 4400cc 发动机 安装完毕 " << endl; 16 } 17 }; 18 19 20 class Engine4500cc : public Engine 21 { 22 public: 23 virtual void InstallEngine() 24 { 25 cout << "我是 4500cc 发动机 安装完毕 " << endl; 26 } 27 }; 28 29 30 class Car 31 { 32 public: 33 Car(Engine *engine) 34 { 35 this->m_engine = engine; 36 } 37 virtual void installEngine() = 0; 38 39 protected: 40 Engine *m_engine; 41 }; 42 43 class WBM5 : public Car 44 { 45 public: 46 WBM5(Engine *engine) : Car(engine) 47 { 48 ; 49 } 50 51 virtual void installEngine() 52 { 53 m_engine->InstallEngine(); 54 } 55 }; 56 57 class WBM6 : public Car 58 { 59 public: 60 WBM6(Engine *engine) : Car(engine) 61 { 62 ; 63 } 64 65 virtual void installEngine() 66 { 67 cout << "我是 王保明 WBM6 " << endl; 68 m_engine->InstallEngine(); 69 } 70 }; 71 72 void main() 73 { 74 // 75 Engine *engine = NULL; 76 WBM6 *wbm6 = NULL; 77 78 engine = new Engine4400cc; 79 wbm6 = new WBM6(engine); 80 wbm6->installEngine(); 81 82 delete wbm6; 83 delete engine; 84 cout<<"hello..."<<endl; 85 system("pause"); 86 return ; 87 }
分析
以上是关于9,桥接模式(Bridge Pattern)是将抽象部分与实际部分分离,使它们都可以独立的变化。的主要内容,如果未能解决你的问题,请参考以下文章