• 设计模式之五:Bridge(转)


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

      二、结构图

      三、示例代码:

     1 class Implementor
     2 {
     3 public:
     4     virtual void OperationImp() = 0 ;
     5 } ;
     6 
     7 class ConcreteImplementorA : public Implementor
     8 {
     9 public:
    10     virtual void OperationImp() {}
    11 } ;
    12 
    13 class ConcreteImplementorB : public Implementor
    14 {
    15 public:
    16     virtual void OperationImp() {}
    17 } ;
    18 
    19 class Abstraction
    20 {
    21 public:
    22     void Operation(Implementor* imp) 
    23     { 
    24         assert(imp) ; 
    25         imp->OperationImp() ; 
    26     }
    27 } ;
    28 
    29 客户端代码:
    30     Abstraction obj ;
    31     Implementor *impa = new ConcreteImplementorA() ;
    32     Implementor *impb = new ConcreteImplementorB() ;
    33     obj.Operation(impa) ; //第一种实现方法
    34     obj.Operation(impb) ; //第二种实现方法 
    View Code

    四、实例

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

     

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

  • 相关阅读:
    编译原理-词法分析01-扫描程序
    编译原理-概论-02
    编译原理-概论-01
    web api :Action Results in Web API 2
    git 学习笔记7--branch
    git 学习笔记6--remote & log
    杭电acm 1230 火星a+b(进制)
    杭电acm 1214 圆桌会议(冒泡排序)
    杭电acm 1210 Eddy's 洗牌问题
    杭电acm 1207 汉诺塔II
  • 原文地址:https://www.cnblogs.com/wangzhijun/p/3464598.html
Copyright © 2020-2023  润新知