您的位置:首页 > 移动开发 > Objective-C

【初学设计模式】Object Adapter (对象适配器)

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









类图:









代码实现:



类声明:

/********************************************************************
	File: 		adapter.h	
	Author:		blackboy  blackboycpp@gmail.com
	Purpose:	适配器模式2 对象适配器
	Created:	2011-03-16
	Modified:	2011-03-16   15:10
*********************************************************************/

#ifndef  __OBJECT_ADPATER_H__
#define  __OBJECT_ADPATER_H__

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

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

    class Adapter : public Target
    {
    public:
        Adapter();
        Adapter(Adaptee*);
        virtual  void  Request();
    private:
        Adaptee*  _adaptee;
    };
}

#endif








类实现:

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

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

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

    Adapter::Adapter()
    {
        std::cout << "Adapter::Adapter()/n";
        _adaptee = 0;
    }

    Adapter::Adapter(Adaptee* p)
    {
        std::cout << "Adapter::Adapter(Adaptee*)/n";
        _adaptee = p;
    }

    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)
{
    Adaptee* adaptee = new Adaptee;
    Target* target = new Adapter(adaptee);
    target->Request();

    delete target;
    delete adaptee;

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