您的位置:首页 > 大数据 > 人工智能

转载:C++设计模式之Bridge模式 http://www.cnblogs.com/chain2012/archive/2011/01/17/1937528.html

2011-10-11 10:35 1056 查看
一、功能
  将抽象部分与它的实现部分分离,使它们都可以独立地变化。

二、结构图



三、示例代码

namespace DesignPattern_Bridge
{
// class Implementor
class Implementor
{
public:
virtual void OperationImp() = 0;
};

// class ConcreteImplementorA
class ConcreteImplementorA : public Implementor
{
public:
virtual void OperationImp() { }
};

// class ConcreteImplementorB
class ConcreteImplementorB : public Implementor
{
public:
virtual void OperationImp() { }
};

// class Abstraction
class Abstraction
{
public:
void Operation(Implementor* imp) { assert(imp) ; imp->OperationImp(); }
};
}

//客户端代码:
{
using namespace DesignPattern_Bridge ;
Abstraction obj ;
Implementor *impa = new ConcreteImplementorA() ;
Implementor *impb = new ConcreteImplementorB() ;
obj.Operation(impa) ; //第一种实现方法
obj.Operation(impb) ; //第二种实现方法
}


四、实例

  (1)创建可以在X Window System和IBM的Presentation Manager系统中都可以使用的窗口。(书上的例子)



Bridge的魅力在于抽象和实现之间是松散的关系,它们之间可以进行随意组合。如上图中,就有IconWindow+XWindowImp、TransientWindow+XWindowImp、IconWindow+PMWindowImp、TransientWindow+PMWindowImp四种组合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐