您的位置:首页 > 编程语言 > C语言/C++

Bridge(桥接)设计模式

2015-10-05 18:03 239 查看
声明:本博文篇幅短,适合review。

一、概念

        将抽象部分与它的实现部分分离,使它们都可以独立地变化。

二、结构模式图

       


三、例子



class App
{
public:
virtual void run() = 0;
};

class PhotoShopApp : public App
{
public:
void run(){
cout<<"run PhotoShopApp"<<endl;
}
};

class FlashApp : public App
{
public:
void run(){
cout<<"run FlashApp"<<endl;
}
};

class Os
{
protected:
App * _app;
public:
void setSoft(App * app){
_app = app;
}

virtual void run(){}
};

class WinOs : public Os
{
public:
void run(){
_app->run();
}
};

class MacOs : public Os
{
public:
void run(){
_app->run();
}
};

void main()
{
Os * os1 = new WinOs();
os1->setSoft(new PhotoShopApp());
os1->run();

Os * os2 = new MacOs();
os2->setSoft(new FlashApp());
os2->run();
}

四、优缺点

        1、优点

              a、降低了代码冗余度,增加了类的可维护性,提高了可扩展性。

              b、满足开闭原则。

              c、分离了抽象和实现部分。

        2、缺点

              a、增加了系统的理解与设计难度。

              b、使用时必须知道选择哪一种类型的实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息