快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

yth206游艇会官方网:C++模式开发之Bridge



一、功yth206游艇会官方网能

将抽象部分与它的实现部分分离,使它们都可yth206游艇会官方网以自力地变更。

二、布局图

三、示例代码

namespace DesignPattern_Bridge

{

// class Implementor

class Implementor

{

public:

virtual void OperationImp() = 0 ;

} ;

// class ConcreteImplementorA

class ConcreteImplemeyth206游艇会官方网ntorA : 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() ;

Implementoryth206游艇会官方网 *impb = new ConcreteImplementorB() ;

obj.Operation(impa) ; //第一种实现措施

obj.Operation(impb) ; //第二种实现措施

}

四、实例

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

Bridge的魅力在于抽象和实现之间是疏松的关系,它们之间可以进行随意组合。如上图中,就有IconWindow+XWindowImp、TransientWindow+XWindowImp、IconWindow+PMWindowImyth206游艇会官方网p、TransientWindow+PMWindowImp四种组合。

您可能还会对下面的文章感兴趣: