bridge模式笔记

   桥接模式目的是将抽象部分与实现想分离,允许各自独立地变化。

   考虑一个抽象有多个实现,通常采用的子类继承的实现方法使得抽象与实现固定在一起,难以独立的进行修改和扩充,桥接模式则提供了灵活的解决方案。具体办法是抽象类定义了接口,同时声明一个实现类指针作为成员变量,实现类则给出了具体的实现方法。例如有一个基本的抽象窗口类,提供了基本的操作接口(绘制,改变大小等)同时有一个实现类指针作为成员变量,一个实现类给出了不同的实现版本。桥接模式的本质在于将一个对象分为两部分,一部分提供接口,一部分提供实现,实现部分的修改并不影响客户端的代码。实例代码如下:

class WindowImp {
public:
virtual void Print(){ printf("WindowImp\n"); }
};

class XWindowImp : public WindowImp {
public:
void Print() { printf("XWindowImp \n"); }
};

class Window {
public:
Window (){ _windowImp=new WindowImp; };

void setWindowImp(WindowImp* pWindow){ if(_windowImp) delete _windowImp; _windowImp=pWindow; };
virtual void Print() { _windowImp->Print(); };
private:
WindowImp* _windowImp;

};


int _tmain(int argc, _TCHAR* argv[])
{
Window w;
w.Print();

w.setWindowImp(new XWindowImp);
w.Print();

getchar();
return 0;
}

  

posted on 2012-04-28 11:03 Marv 阅读(162) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿

随笔档案

文章分类

搜索

最新评论

阅读排行榜

评论排行榜