设计模式-第四章-代理模式

本文介绍了代理模式的基本概念,包括Subject、RealSubject和Proxy类的作用及其实现。探讨了代理模式的应用场景,如远程代理、虚拟代理等,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、UML图

二、包含的角色

Suject类,定义了RealSubject和Proxy的共用接口

RealSubject类,定义了Proxy所代理的真实实体

Proxy类,代理类。

三、特点

定义:代理模式(Proxy)为其他对象提供一种代理,用来控制对这个对象的访问。

应用场合:

(1)远程代理,为一个对象在不同地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。

(2)虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。

(3)安全代理,用来控制真实对象访问时候的权限

(4)智能指引,调用真实对象时候,代理处理另外的事情。 

四、代码实现

Subject类

class Subject {
public:
	virtual void Request();
};

RealSubject类

class RealSubject : public Subject {
public:
	void Request();
};
#include "RealSubject.h"
#include <iostream>

void RealSubject::Request() {
	printf("RealRequst");
}

Proxy类

#include "Suject.h"
#include "RealSubject.h"

class Proxy : public Subject {
public:
   void Request();
private:
   RealSubject* realSubject;
};
#include "Proxy.h"

void Proxy::Request() {
{
	if (realSubject == NULL)
	{
		realSubject = new RealSubject();
	}
	realSubject->Request();
}

调用方式

int main()
{
    Proxy* proxy = new Proxy();
    proxy->Request();
    delete proxy;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值