桥接模式 bridge pattern

Posted on 2018-10-11 20:01  yacbo  阅读(144)  评论(0编辑  收藏  举报

  桥接模式是将抽象部分(abstraction)与实现(implementation)部分分离(解耦合),使他们可以独立的变化。

车安装发动机:不同型号的车,安装不同型号的发动机。

将"车安装发动机"这个抽象和实现进行分离,两个名字就设计两个类。

class Engine
{
 public:
     virtual void InstallEngine() = 0;      
};

class Engine4400cc : public Engine
{
 public:
     virtual void InstallEngine()
    {
         std::cout<<"4400cc 发动机"<<std::endl;
    }
};

class Engine4500cc : public Engine
{
 public:
     virtual void InstallEngine()
    {
         std::cout<<"4500cc 发动机"<<std::endl;
    }
};

class Car
{
public:
   Car(Engine *engine)
   {
         this->m_engine = engine;
   }
   virtual void installEngine() = 0;
private:
   Engine *m_engine;
};
class WBM5 : public Car { public: WBM5(Engine *engine) : Car(engine) { ; } virtual void installEngine() { m_engine->installEngine(); } }
Engine *engine = NULL;
WBM5 *wbm5 = NULL;
engine = new Engine4400cc();
wbm5 = new WBM5(engine);
wbm5->installEngine();
delete wbm5;
delete engine;

Copyright © 2024 yacbo
Powered by .NET 8.0 on Kubernetes