代理模式Proxy
为其他对象提供一种代理以控制对这个对象的访问
定义一个公共接口,两个子类一个代理类,一个真实类
abstract class Subject {
public abstract void Request();
}
class RealSubject : Subject {
public override void Request() {
console.WriteLine("真实的请求");
}
}
class Proxy : Subject {
RealSubject real;
public override void Request() {
if(real == null) {
real = new RealSubject();
}
real.Request();
}
}
static void Main(String[] args) {
Proxy proxy = new Proxy();
proxy.Request();
console.Read();
}
应用:1.远程代理 引用webservie,会在项目中生成一个webreference等文件,这就是代理
2.虚拟代理,例浏览器使用代理模式优化下载
3.安全代理,用来控制真实对象访问时的权限
4.智能指引,是指当调用真实对象时,代理处理另外一件事