|
Posted on
2008-09-01 09:23
Anna Yang
阅读( 278)
评论()
编辑
收藏
举报
代理模式——Proxy...
- 设计模式(13):代理模式(Proxy Pattern)
-
-
代理模式(Proxy Pattern)
-
定义
-
为其他对象提供一种代理以控制对这个对象的访问。
-
概述
-
在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。
-
-
代理模式(Proxy Pattern)结构图
-
-
上图解析:
-
Subject类:
-
abstract class clsSubject
{
public abstract void Request();
}
-
-
realSubject类:
-
class clsRealSubject:clsSubject
{
public clsRealSubject()
{
}
public override void Request()
{
Console.WriteLine("真实的请求");
}
}
-
- Proxy类:
-
class clsProxy:clsSubject
{
clsRealSubject realsubject;
public clsProxy()
{
}
public override void Request()
{
if (realsubject == null)
{
realsubject = new clsRealSubject();
}
realsubject.Request();
}
}
-
- Client类:
-
class clsClient
{
static void Main(string[] args)
{
clsProxy proxy = new clsProxy();
proxy.Request();
Console.Read();
}
}
-
- 代理的应用:
1.远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实
2.虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。
3.安全代理,用来控制真实对象访问的权限。
4.职能指引,是指当调用真实的对象时,代理处理另外一些事。
|