博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

c++,c,vc

   ddwwoo.cublog.cn
关于作者  


我的分类  




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

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

  一、功能

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

  二、结构图

  三、示例代码

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四种组合。

一起学习 C 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之BridgeC 模式开发之Bridge

 发表于: 2008-04-25,修改于: 2008-04-27 19:08 已浏览126次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:4.27588

京ICP证041476号