学习笔录——设计模式
代理模式(Proxy)
简介
为其他对象提供一种代理以控制 对这个对象的访问
代码示例
/*
*定义代理和被代理的公用接口,或者抽象方法
*这样就在任何使用被代理的地方使用 代理
*/
public abstract class Subject
{
public abstract void Request();
}
// 被代理(真实主题)
public class RealSubject : Subject
{
public override void Request()
{
System.Console.WriteLine("真实的请求");
}
}
// 代理 保存一个代理的引用,对外让客户端引用自身
public class Proxyer : Subject
{
private RealSubject subject;
public override void Request()
{
if(subject is null)
subject = new RealSubject();
System.Console.WriteLine($"我是代理人proxy,subject向你说:");
subject.Request();
}
}
class Program
{
static void Main(string[] args)
{
// 实例化一个代理
Proxyer proxyer = new Proxyer();
// 调用代理
proxyer.Request();
Console.Read();
}
}
个人理解,不足之处还请指教。
代理模式通过一个代理(proxy)隐藏其真实的实体,也可以理解为真实的实体想通知客户端但是不想让客户端知道他,所以通过代理来让代理来通知。