时间:2021-05-19
代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口.根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户的不同需求
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignModel
{
public class Proxy:IAction
{
ZQZ zzz = null;
public Proxy(ZQZ mm)
{
zzz = mm;
}
public void SendFlower()
{
zzz.SendFlower();
}
public void SendCake()
{
zzz.SendCake();
}
}
public interface IAction
{
void SendFlower();
void SendCake();
}
public class ZQZ : IAction
{
public string myname { set; get; }
public void SendFlower()
{
Console.WriteLine(myname+"送花");
}
public void SendCake()
{
Console.WriteLine(myname+"送蛋糕");
}
}
}
客户端调用:
复制代码 代码如下:
ZQZ zzz = new ZQZ();
zzz.myname = "朱建军";
Proxy p = new Proxy(zzz);
p.SendFlower();
p.SendCake();
代理模式分类:
1. 远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
例如: webservice 服务
2. 虚拟代理, 是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。
浏览器当中是用代理模式来优化下载页面的
3.安全代理
用来控制真实对象访问时的权限。
4.智能指引
是指调用真实对象时,代理处理另外一些事。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题。分享给大家供大家参考,具体如下:一、理论定义职责链模式向一个
本文实例讲述了java设计模式之静态代理模式。分享给大家供大家参考,具体如下:代理模式,可以通过代理可以在原来的基础上附加一些其他的操作。静态代理模式相对比较简
本文实例讲述了JavaScript设计模式之代理模式。分享给大家供大家参考,具体如下:代理模式的定义,代理是一个对象(proxy)用它来控制目标对象的访问。为此
本文实例讲述了Python设计模式之代理模式。分享给大家供大家参考,具体如下:代理模式(ProxyPattern):为其他对象提供一种代理以控制对这个对象的访问
本文实例讲述了C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题。分享给大家供大家参考,具体如下:一.理论定义观察者模式描述了一种一对多的关系。当某一