c++ 桥接模式(bridge)

桥接模式的目的是分离抽象实现部分,把数据和实现分开,降低耦合。桥接模式和适配器模式不同之处是,桥接模式一般会在软件设计初考虑使用,适配器模式在软件设计之后为了实现接口兼容时使用。

下面是系统和电脑之间的桥接模式的使用

#include <iostream>
using namespace std;

class OS
{
public:
    virtual void NameOS()
    {

    }
};

class WindowOS:public OS
{
public:
    void NameOS()
    {
        cout << "安装Window操作系统" <<endl;
    }

};

class LinuxOS:public OS
{
public:
    void NameOS()
    {
        cout <<  " 安装Linux操作系统" <<endl;
    }
};

class UnixOS:public OS
{
public:
    void NameOS()
    {
        cout << "安装Unix操作系统" <<endl;
    }
};

class Computer
{
public:
    Computer(OS *osptr):m_osPtr(osptr)
    {
    
    }
    virtual void InstallOs() = 0;
protected:
    OS *m_osPtr;
};

class DellComputer:public Computer
{
public:
    DellComputer(OS *osptr):Computer(osptr)
    {
    
    }

    void InstallOs()
    {
        cout << "Dell Computer" << endl;
        m_osPtr->NameOS();
    }
};

class ToshibaComputer:public Computer
{
public:
    ToshibaComputer(OS *osptr):Computer(osptr)
    {
    
    }
    void InstallOs()
    {
        cout << "ToShiBa Computer" << endl;
        m_osPtr->NameOS();
    }
};

int main()
{
    DellComputer * DellPtr1 = new DellComputer(new WindowOS);
    DellPtr1->InstallOs();

    DellComputer * DellPtr2 = new DellComputer(new LinuxOS);
    DellPtr2->InstallOs();

    ToshibaComputer *ToshibaPtr1 = new ToshibaComputer(new WindowOS);
    ToshibaPtr1->InstallOs();

    ToshibaComputer *ToshibaPtr2 = new ToshibaComputer(new LinuxOS);
    ToshibaPtr2->InstallOs();

    system("pause");

    return 0;
}

输出结果:

Dell Computer
安装Window操作系统
Dell Computer
 安装Linux操作系统
ToShiBa Computer
安装Window操作系统
ToShiBa Computer
 安装Linux操作系统
请按任意键继续. . .

 

posted @ 2013-12-17 15:11  onlycxue  阅读(1272)  评论(0编辑  收藏  举报