代理模式

Posted

tags:

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

1.定义
给某一对象提供一个代理对象,并由代理对象控制对原对象的引用。可以通过代理对象在客户端和目标对象之间起到中介作用
2.代理模式里的角色
抽象对象角色:目标对象和代理对象的共同的接口
目标对象:
代理对象:代理对象中有目标对象的引用
4.静态代理
接口
public interface Server{
    public String getMessage();
}
目标对象
public class SinaServer implements Server{
    @Override
    public String getMessage(){
        retrun "success";
    }    
}
代理对象
public class NgnixProxy implements Server{
    private Server Server;
    public NgnixProxy(Server server){
        this.server=server;
    }
    @Override
    public String getMessage(){
        return "success";
    }
}
测试:
Server SinaServer=new SinaServer();
Server ngnixProxy=new NgnixProxy(sinaServer); //代理对象控制原对象的引用
5.动态代理:
利用java反射技术,动态创建代理对象。
jdk动态代理:需要定义接口和实现接口
cglib代理,对目标类生成一个子类,覆盖其中方法实现增强,采用的是继承的方式

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

设计模式代理模式 ( 代理模式结构 | 客户端 | 主题对象 | 被代理对象 | 代理对象 )

代理的模式和原理(代理的模式有几种)

设计模式——代理模式

设计模式-代理模式

设计模式 结构型模式 -- 代理模式(动态代理(CGLIB动态代理)三种代理的对比(静态代理动态代理(JDK代理和CGLIB代理)优缺点使用场景))

代理模式 (ProxyPattern)