zoukankan      html  css  js  c++  java
  • 设计模式之五: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四种组合。

  • 相关阅读:
    存储器的分配与回收算法实现
    jsoup抓取借书记录
    java学习碰到死胡同了
    PHP MYSQL登陆和模糊查询
    JAVA进阶之路(一)
    String是最基本的数据类型吗?
    面向对象的特征有哪些方面
    sqoop
    你真的理解 new 了吗?
    面试题目 字符串的去重与压缩(统计)
  • 原文地址:https://www.cnblogs.com/wangzhijun/p/3464598.html
Copyright © 2011-2022 走看看