设计模式之桥接模式C++简单实现

桥模式,其作用就是让抽象与实现相分离,让两者都能够各自变化

简单实现代码如下:

[cpp][/cpp]

view plaincopy

  1. #include<iostream>
  2. using namespace std;
  3. class Implementor
  4. {
  5. public:
  6.     virtual void Operation()=0;
  7. };
  8. class ConcreteImplementorA:public Implementor
  9. {
  10. public:
  11.     virtual void Operation()
  12.     {
  13.         cout<<“具体实现A的方法执行”<<endl;
  14.     }
  15. };
  16. class ConcreteImplementorB:public Implementor
  17. {
  18. public:
  19.     virtual void Operation()
  20.     {
  21.         cout<<“具体实现B的方法执行”<<endl;
  22.     }
  23. };
  24. class Abstraction
  25. {
  26. protected:
  27.     Implementor * implementor;
  28. public:
  29.     virtual void SetImplementor(Implementor * implementor)
  30.     {
  31.         this->implementor=implementor;
  32.     }
  33.     virtual void Operation()=0;
  34.     virtual ~Abstraction(){}
  35. };
  36. class RefinedAbstraction:public Abstraction
  37. {
  38. public:
  39.     virtual void Operation()
  40.     {
  41.         implementor->Operation();
  42.     }
  43.     virtual ~RefinedAbstraction()
  44.     {
  45.         if(implementor)
  46.             delete implementor;
  47.     }
  48. };
  49. int main()
  50. {
  51.     Abstraction * ab=new RefinedAbstraction();
  52.     ab->SetImplementor(new ConcreteImplementorA());
  53.     ab->Operation();
  54.     delete ab;
  55.     ab=new RefinedAbstraction();
  56.     ab->SetImplementor(new ConcreteImplementorB());
  57.     ab->Operation();
  58.     delete ab;
  59.     return 0;
  60. }

标签