zoukankan      html  css  js  c++  java
  • C++设计模式之适配器模式

    对象适配器有以下特点:

    1. 有的时候,你会发现,不是很容易去构造一个Adaptee类型的对象;
    2. 当Adaptee中添加新的抽象方法时,Adapter类不需要做任何调整,也能正确的进行动作;
    3. 可以使用多肽的方式在Adapter类中调用Adaptee类子类的方法。

    代码实现:

     1 // Adapter.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <iostream>
     6 #include<string>
     7 using namespace std;
     8 
     9 
    10 class Target
    11 {
    12 public:
    13     Target(){}
    14     virtual ~Target(){}
    15     virtual void Request()
    16     {
    17         cout << "Target::Request" << endl;
    18     }
    19 };
    20 class Adaptee
    21 {
    22 public:
    23     void SpecificRequest()
    24     {
    25         cout << "Adaptee::SpecificRequest" << endl;
    26     }
    27 };
    28 
    29 class Adapter : public Target
    30 {
    31 public:
    32     Adapter() : m_Adaptee(new Adaptee) {}
    33     ~Adapter()
    34     {
    35         if (m_Adaptee != NULL)
    36         {
    37             delete m_Adaptee;
    38             m_Adaptee = NULL;
    39         }
    40     }
    41     void Request()
    42     {
    43         m_Adaptee->SpecificRequest();
    44     }
    45 
    46 private:
    47     Adaptee *m_Adaptee;
    48 };
    49 int _tmain(int argc, _TCHAR* argv[])
    50 {
    51     cout<<"适配器模式:"<<endl;
    52     Target *targetObj = new Adapter();
    53     targetObj->Request();
    54     delete targetObj;
    55     targetObj = NULL;
    56     system("pause");
    57     return 0;
    58 }
  • 相关阅读:
    创业公司新品如何寻求科技媒体的报道?
    DevStore分享:详析消费者十大心理学
    DevStore教你如何玩转饥饿营销?
    iClap分享:如何优雅的在 APP 中实现测试?
    java内部类
    Tostring 的用法
    Java 集合详解
    Java集合浅析
    异常--解析
    is-a 、have-a、和 like-a的区别
  • 原文地址:https://www.cnblogs.com/wxmwanggood/p/9289233.html
Copyright © 2011-2022 走看看