代理模式(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;
}
}