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 }

分析

        

原文地址:https://www.cnblogs.com/D-DZDD/p/7341810.html