代理模式

Posted 酒皇

tags:

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

代理模式跟之前的策略模式,装饰模式差距不大,但是代理模式不能无限递归,比策略模式更加解耦

通过当前对象调用某个方法,同时也调用对象内部属性对象的方法。

个人感觉无需继承也可以,继承了以后替换起来成本比较低

//父类抽象类
abstract class Subject {
    public abstract void Request();
}

//实现类
public class RealSubject extends Subject {
    public void Request(){
        System.out.println("真实的请求");
    }
}
//代理类
public class Proxy extends Subject {
    Subject subject;
    @Override
    public void Request() {
        // TODO Auto-generated method stub
        if(subject==null){
            subject=new RealSubject();
        }
        subject.Request();
    }
}

 

下面是实现

//实现方法,简洁调用
public class Context {
    public static void main(String[] args) {
        Proxy p=new Proxy();
        p.Request();
    }
}

 

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

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

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

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

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

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

代理模式(静态代理)