C++设计模式之Bridge模式

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

 

二、结构图

C++设计模式之Bridge模式

 

三、示例代码

  
    
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 SystemIBMPresentation Manager系统中都可以使用的窗口。(书上的例子

C++设计模式之Bridge模式

 Bridge的魅力在于抽象和实现之间是松散的关系,它们之间可以进行随意组合。如上图中,就有IconWindow+XWindowImpTransientWindow+XWindowImpIconWindow+PMWindowImpTransientWindow+PMWindowImp四种组合。

你可能感兴趣的:(bridge)