设计模式-代理模式(Proxy Pattern)
2012-07-04 17:34
459 查看
代理模式(Proxy Pattern)给某一个对象提供一个代理,并由代理对象控制对原对象的引用。
代理模式设计的角色:
抽象目标角色(Target)
代理目标角色(Proxy)
真实目标角色(RealTarget)
代码:
/// <summary>
/// 目标接口
/// </summary>
public interface ITarget
{
/// <summary>
/// 请求
/// </summary>
void Request();
/// <summary>
/// 响应
/// </summary>
void Response();
}
/// <summary>
/// 真实目标
/// </summary>
public class RealTarget:ITarget
{
public void Request()
{
Console.WriteLine("this is the Request of RealTarget");
}
public void Response()
{
Console.WriteLine("this is the Response of RealTarget");
}
}
/// <summary>
/// 代理
/// </summary>
public class Proxy : ITarget
{
ITarget _RealTarget = null;
public Proxy()
{
_RealTarget = new RealTarget(); ;
}
public Proxy(ITarget target)
{
_RealTarget = target;
}
public void Request()
{
_RealTarget.Request();
}
public void Response()
{
_RealTarget.Response();
}
}
class Program
{
static void Main(string[] args)
{
Proxy proxy = new Proxy(new RealTarget());
proxy.Request();
proxy.Response();
Proxy proxy2 = new Proxy();
proxy2.Request();
proxy2.Response();
Console.ReadLine();
return;
}
}
代理模式设计的角色:
抽象目标角色(Target)
代理目标角色(Proxy)
真实目标角色(RealTarget)
代码:
/// <summary>
/// 目标接口
/// </summary>
public interface ITarget
{
/// <summary>
/// 请求
/// </summary>
void Request();
/// <summary>
/// 响应
/// </summary>
void Response();
}
/// <summary>
/// 真实目标
/// </summary>
public class RealTarget:ITarget
{
public void Request()
{
Console.WriteLine("this is the Request of RealTarget");
}
public void Response()
{
Console.WriteLine("this is the Response of RealTarget");
}
}
/// <summary>
/// 代理
/// </summary>
public class Proxy : ITarget
{
ITarget _RealTarget = null;
public Proxy()
{
_RealTarget = new RealTarget(); ;
}
public Proxy(ITarget target)
{
_RealTarget = target;
}
public void Request()
{
_RealTarget.Request();
}
public void Response()
{
_RealTarget.Response();
}
}
class Program
{
static void Main(string[] args)
{
Proxy proxy = new Proxy(new RealTarget());
proxy.Request();
proxy.Response();
Proxy proxy2 = new Proxy();
proxy2.Request();
proxy2.Response();
Console.ReadLine();
return;
}
}
相关文章推荐
- 设计模式之代理模式(Proxy Pattern)
- JAVA设计模式之 代理模式【Proxy Pattern】
- 【编程素质】设计模式-代理模式(委托模式、Proxy Pattern):动态扩充对象功能
- 设计模式-代理模式(Proxy Pattern)
- java GOF设计模式--------------代理模式(Proxy Pattern)
- 设计模式:代理模式(Proxy Pattern)
- C#设计模式(13)——代理模式(Proxy Pattern) 推荐
- 设计模式 - 代理模式(proxy pattern) 未使用代理模式 具体解释
- 设计模式(18):代理模式 Proxy Pattern
- 设计模式(二十一)-代理模式(Proxy Pattern)——只在必要时生成实例
- 【设计模式】学习笔记15:代理模式(Proxy Pattern)
- 解读设计模式----代理模式(Proxy Pattern),从买电脑的那些事儿说起
- Java设计模式——代理模式(PROXY PATTERN)
- 设计模式原来如此-代理模式(Proxy Pattern)
- 设计模式原来如此-代理模式(Proxy Pattern)
- 设计模式 —— 代理模式(Proxy Pattern)
- 【设计模式】学习笔记15:代理模式(Proxy Pattern)
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 代理对象我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)