码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2015-05-28 00:35:40      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

1】什么是代理模式?

  为其他对象提供一种代理,并以控制对这个对象的访问。

【2】代理模式代码示例:

示例代码:
#include <iostream>
#include <string>
using namespace std;

class SchoolGirl
{
public:
    string name;
};

/*
 * 接口
 */
class IGiveGift
{
public:
    virtual void giveDolls() = 0;
    virtual void giveFlowers() = 0;
};

/*
 * 委托类
 */
class Pursuit : public IGiveGift
{
private:
    SchoolGirl mm;

public:
    Pursuit(SchoolGirl m)
    {
        mm = m;
    }
    void giveDolls()
    {
        cout << mm.name << " 送你娃娃" << endl;    
    }
    void giveFlowers()
    {
        cout << mm.name << " 送你鲜花" << endl;    
    }
};

/*
 * 代理类
 */
class Proxy : public IGiveGift
{
private:
    Pursuit gg;

public:
    Proxy(SchoolGirl mm) : gg(mm)
    {
    }
    void giveDolls()
    {
        gg.giveDolls();
    }
    void giveFlowers()
    {
        gg.giveFlowers();
    }
};

/*
 * 客户端
 */
int main()
{
    SchoolGirl lijiaojiao;
    lijiaojiao.name = "李娇娇"; 
    Pursuit zhuojiayi(lijiaojiao); 
    Proxy daili(lijiaojiao);

    daili.giveDolls();
    daili.giveFlowers();

    return 0;
}

 

代理模式

标签:

原文地址:http://www.cnblogs.com/leijiangtao/p/4534653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!