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

  • 相关阅读:
    用“Keras”11行代码构建CNN
    技术 | 使用深度学习检测DGA(域名生成算法)
    未来的超级智能网络攻击需要AI竞技俱乐部来拯救
    开源中国的代码托管
    Hello Java !
    15-include的使用
    14-递归函数
    13-函数的调用
    12-函数的返回值
    11-函数的参数
  • 原文地址:https://www.cnblogs.com/wangzhijun/p/3464598.html
Copyright © 2011-2022 走看看