您的位置:首页 > 其它

【初学设计模式】Class Adapter (类适配器)

2011-03-17 19:53 162 查看
// 所有原创文章转载请注明作者及链接
// blackboycpp(AT)gmail.com
// QQ群: 135202158







类图:









代码实现:



类声明:

/********************************************************************
	File: 		adapter.h	
	Author:		blackboy  blackboycpp@gmail.com
	Purpose:    适配器模式之一 类适配器
	Created:	2011-03-16
	Modified:	2011-03-16   09:17
*********************************************************************/

#ifndef  __CLASS_ADAPTER_H__
#define  __CLASS_ADAPTER_H__

namespace blackboycpp
{
    class  Target
    {
    public:
        virtual  void  Request();
    };

    class  Adaptee
    {
    public:
        void  SpecificRequest();
    };

    // 采用多重继承:对Target采用公共继承,而对Adaptee采用私有继承。
    // 这样,Adapter是Target的子类型,而不是Adaptee的子类型。
    class  Adapter : public Target, private Adaptee
    {
    public:
        virtual  void  Request();
    };
}

#endif








类实现:

#include <iostream>
#include "adapter.h"

namespace  blackboycpp
{
    void  Target::Request()
    {
        std::cout << "Target::Request()/n";
    }

    void  Adaptee::SpecificRequest()
    {
        std::cout << "Adaptee::SpecificRequest()/n";
    }

    void  Adapter::Request()
    {
        std::cout << "Adapter::Request()/n";
        Adaptee::SpecificRequest();
    }
}








main():

#include <cstdlib>
#include "adapter.h"
using namespace blackboycpp;

int  main(int argc, char** argv)
{
    Target* target = new Adapter;
    target->Request();
    delete target;

    system("pause");
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: