C++設計模式之橋接模式
阿新 • • 發佈:2019-02-02
//橋接模式,合成,聚合複用原則
#include<iostream>
using namespace std;
class Soft
{
public:
virtual void run() = 0;
};
class Notepad :public Soft
{
public:
void run()
{
cout << "執行Notepad++軟體" << endl;
}
};
class QtCreator :public Soft
{
public:
void run()
{
cout << "執行QtCreator軟體" << endl;
}
};
class Computer
{
protected:
Soft* m_soft;
public:
void setsoft(Soft* soft)
{
m_soft = soft;
}
virtual void Run() = 0;
};
class Lenovo :public Computer
{
public:
Lenovo()
{
cout << "聯想電腦正在開機..." << endl;
}
void Run()
{
this ->m_soft->run();
}
};
class Dale :public Computer
{
public:
Dale()
{
cout << "戴爾電腦正在開機..." << endl;
}
void Run()
{
this->m_soft->run();
}
};
int main()
{
Computer* lenovo = new Lenovo();
lenovo->setsoft(new Notepad());
lenovo->Run();
lenovo->setsoft(new QtCreator());
lenovo->Run();
cout << endl;
Computer* dale = new Dale();
dale->setsoft(new Notepad());
dale->Run();
dale->setsoft(new QtCreator());
dale->Run();
system("pause");
return 0;
}
輸出:
聯想電腦正在開機...
執行Notepad++軟體
執行QtCreator軟體
戴爾電腦正在開機...
執行Notepad++軟體
執行QtCreator軟體
請按任意鍵繼續. . .