名称: 代理模式
说说:
动机:
适用性:
参与者:
结果:为另一个对象提供一个替身或占位符以控制对这个对象的访问
类图:
说明:通常分远程代理、虚拟代理(开销大的资源)和保护代理(权限资源)3种,结构的关键在于代理与实体对象继承同一个接口。
demo c#:
namespace proxy {
class Program {
static void Main(string[] args) {
iRequest request = new proxySubject();
request.sayHello();
request.doSthOther();
Console.Read();
}
}
interface iRequest {
void sayHello();
void doSthOther();
}
class realSubject : iRequest {
public void sayHello() {
Console.WriteLine("hello!");
}
public void doSthOther() {
Console.WriteLine("do something other!");
}
}
class proxySubject : iRequest{
realSubject subject = new realSubject();
public void sayHello() {
if(true){ // 判断要不要代理
subject.sayHello();
}
}
public void doSthOther() {
if(true){ // 判断要不要代理
subject.doSthOther();
}
}
}
}