设计模式学习笔记-代理模式
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问,简单的来说调用这个类的同时其实里面是别的类在干事。
应用有
1.远程代理:也就是为一个对象在不同的地址空间提供局部代表,这样可以影藏一个对象存在于不同地址空间的事实,比如.net里的webservice。
2.虚拟代理:根据需要将一个资源消耗很大的或者比较复杂的对象延迟到真正需要时才创建,比如延迟加载图片,优先加载文字
3.保护代理:控制对一个对象的访问权限,用于对象有权限设置的时候
4.智能引用:当调用真实对象时,代理处额外的事情来,提供额外的服务,如计算对象真实的引用次数,这样对象没有引用时可以自动释放它,通过代理访问一个对象时做一些额外的内务处理。
1.添加接口类Subject
/// <summary>
/// 定义了RealSubject和Proxy的公共接口,这样就在任何使用RealSubject的地方使用Proxy
/// </summary>
abstract class Subject
{
public abstract void Request();
}
2.真实的处理类
class RealSubject:Subject
{
public override void Request()
{
Console.WriteLine("真实的请求");
}
}
3.代理执行的类
class Proxy:Subject
{
RealSubject realSubject;
public override void Request()
{
if(realSubject==null)
{
realSubject = new RealSubject();
}
realSubject.Request();
}
}
小结:逻辑上比较简单,不再举例详解