/*
* 桥接模式
*/
// 手机软件
class HandsetSoft {
public:
virtual void run() = 0;
};
// 游戏软件
class HandsetGame: public HandsetSoft {
public:
virtual void run() {
std::cout << "HandsetGame run." << std::endl;
}
};
// 通讯录软件
class HandSetAddressList: public HandsetSoft {
public:
virtual void run() {
std::cout << "HandSetAddressList run" << std::endl;
}
};
// 手机品牌
class HandsetBrand {
public:
void setHandsetSoft(HandsetSoft* temp) {
this->m_soft = temp;
}
virtual void run() = 0;
protected:
HandsetSoft* m_soft;
};
// M 品牌
class HandsetBrandM: public HandsetBrand {
public:
virtual void run() {
this->m_soft->run();
}
};
// N 品牌
class HandsetBrandN: public HandsetBrand {
public:
virtual void run() {
this->m_soft->run();
}
};
int main() {
HandsetBrand* brand = new HandsetBrandM();
brand->setHandsetSoft(new HandsetGame());
brand->run();
brand->setHandsetSoft(new HandSetAddressList());
brand->run();
return 0;
}