第一次遇到代理模式的是在客户端调用WCF,那时候还不知道什么是代理模式。UML和代码是学习设计模式的最好方法,UML一看就懂,再不懂就去看代码。
Proxy与实际对象继承同一个父类/接口,实际对象中实现了实际的操作,Proxy中调用实际对象的操作。
public Interface ISubject
{
void Request();
}
public class RealSubject:ISubject
{
public void Request()
{
Console.WriteLine("Get Real Request");
}
}
public class ProxySubject:ISubject
{
private ISubject Sub{get;private set;}
//在构造函数中注入实际对象
public ProxySubject(ISubject sub)
{
Sub=sub;
}
public void Request()
{
Console.WriteLine("Read To Request");
Sub.Request();
Console.WriteLine("Request Complete");
}
}