代理模式

Posted zhengwei_cq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式相关的知识,希望对你有一定的参考价值。

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();
        }

 

以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章

scrapy按顺序启动多个爬虫代码片段(python3)

用于从 cloudkit 检索单列的代码模式/片段

java代码实现设计模式之代理模式

代理模式(静态代理动态代理)代码实战(详细)

Java设计模式-代理模式之动态代理(附源代码分析)

代理模式(静态代理)