• bridge模式


    看了好几天,一直没想明白bridge模式到底怎么用,知道今天把四人帮的书翻出来,看到这样一句话,才恍然大悟,敲出来记录一下。

    “一般来讲,Implementor接口仅提供基本操作,而Abstraction则定义了基于这些基本操作的较高层次的操作。”

     1 #include <iostream>
     2 using namespace std;
     3 
     4 
     5 // 为实现Abstraction定义的抽象基类,定义了实现的接口函数
     6 class Implementor
     7 {
     8 public:
     9     Implementor(){}
    10     virtual ~Implementor(){}
    11 
    12     virtual void OperationImpl() = 0;
    13 };
    14 
    15 // 继承自Implementor,是Implementor的不同实现之一
    16 class ConcreateImplementorA
    17     : public Implementor
    18 {
    19 public:
    20     ConcreateImplementorA(){}
    21     virtual ~ConcreateImplementorA(){}
    22 
    23     virtual void OperationImpl(){cout<<"I'm in AAAAAAAAAAAAAA!!!\n";}
    24 };
    25 
    26 // 继承自Implementor,是Implementor的不同实现之一
    27 class ConcreateImplementorB
    28     : public Implementor
    29 {
    30 public:
    31     ConcreateImplementorB(){}
    32     virtual ~ConcreateImplementorB(){}
    33 
    34     virtual void OperationImpl(){cout<<"I'm in BBBBBBBBBBBBBBB!!!\n";}
    35 };
    36 class Abstraction
    37 {
    38 public:
    39     Abstraction(Implementor* pImplementor){
    40         m_pImplementor=pImplementor;
    41     }
    42     virtual ~Abstraction(){delete m_pImplementor;};
    43 
    44     void Operation(){
    45         m_pImplementor->OperationImpl();
    46     }
    47 
    48 protected:
    49     Implementor* m_pImplementor;
    50 };
    51 
    52 
    53 int main()
    54 {
    55     Abstraction* tmp=new Abstraction(new ConcreateImplementorA());
    56     tmp->Operation();
    57     return 0;
    58 }
  • 相关阅读:
    Hadoop- Cluster Setup
    Hadoop- Cluster Setup
    【网络协议】动态主机配置协议DHCP
    【网络协议】动态主机配置协议DHCP
    数据流(任务并行库 TPL)
    数据流(任务并行库 TPL)
    js数据存储.html
    对象操作(2).html
    对象操作(1).html
    对象forin循环.html
  • 原文地址:https://www.cnblogs.com/kakamilan/p/2598801.html
Copyright © 2020-2023  润新知