首页 > 代码库 > 代理模式

代理模式

1、个人理解:被代理类与代理类同时要实现相同的接口或抽象类,在代理类中保留对被代理类的引用,实现抽象类的方法时对被代理类的方法进行调用,初始化代理类的时候要传入的参数是被代理类,当我们调用代理类的方法时实际上执被代理类的方法,也就实现了代理模式。

2、专业解释:为其他对象提供一种代理以控制对这个对象的访问。

3、代码:

1)抽象类,供代理类和被代理类去继承

1 abstract class Subject
2     {
3         public abstract void Request();
4     }

2)被代理类,继承抽象类,重写Request方法

1 class RealSubject:Subject
2     {
3 
4         public override void Request()
5         {
6             Console.WriteLine("我是真实的请求!");
7         }
8     }

3)代理类,继承抽象类,重写Request方法,将被代理类作为自己的一个字段

 1  class Proxy : Subject
 2     {
 3         RealSubject rs;
 4         public override void Request()
 5         {
 6             rs.Request();
 7         }
 8         Proxy(RealSubject rs) {
 9             this.rs = rs;
10         }
11     }

4)客户端代码

 public static void Main() {
            RealSubject rs = new RealSubject();
            Proxy px = new Proxy(rs);
            px.Request();
        }

 

代理模式