C++设计模式 ==> 代理模式

简介

代理模式,顾名思义,就是让代理替代真实事物做事情,且结果是是等效的,就相当于现实世界中的中介。在设计模式中,代理模式需要使用代理类来实例化真实事物类的对象,然后可以创建代理对象代替真实对象处理一些事情。代理模式可以起到隔离真实事物类的作用,在网络通信等后面有诸多应用
下面我们使用一个简单的代码样例来演示一下代理模式的工作过程:假设有一位小A(RealPersuitePeople类)想追求小红,但他比较羞涩,所以委托类代理小B(PersuiteProxy类)处理这件事。


图示

代理模式图示


代码实现


//
//  @Author : PeterZheng
//  @FileName : ProxyModeDefine.h
//  @Date : 2018-08-12 0:17
//


#pragma once
#ifndef PMDINCLUDE
#define PMDINCLUDE

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <tchar.h>

#endif

//抽象方法类
class PersuitPeople
{
public:
    std::wstring mm;
    PersuitPeople(std::wstring lmm) :mm(lmm) {}
    virtual void persuite() = 0;
};

//真实操作者类(小A)
class RealPersuitPeople : public PersuitPeople
{
public:
    RealPersuitPeople(std::wstring lmm) :PersuitPeople(lmm) {}
    virtual void persuite()
    {
        std::wcout << _T("喜欢你") + this->mm << std::endl;
        return;
    }
};

//代理类(小B)
class PersuiteProxy :public PersuitPeople
{
private:
    RealPersuitPeople * rpp = NULL;
public:
    PersuiteProxy(std::wstring lmm) :PersuitPeople(lmm) {};
    virtual void persuite()
    {
        rpp = new RealPersuitPeople(this->mm);
        rpp->persuite();
        return;
    }
};



//
//  @Author : PeterZheng
//  @FileName : ProxyDemo.cpp
//  @Date : 2018-08-12 0:33
//


#include "ProxyModeDefine.h"

using namespace std;

int _tmain(void)
{
    wcout.imbue(std::locale("chs"));
    PersuiteProxy *pp = new PersuiteProxy(_T("小红"));
    pp->persuite();
    system("pause");
    return 0;
}

转载于:https://www.cnblogs.com/PeterZ1997/p/9532115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值