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代理,对目标类生成一个子类,覆盖其中方法实现增强,采用的是继承的方式
代理模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式相关的知识,希望对你有一定的参考价值。
以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式代理模式 ( 代理模式结构 | 客户端 | 主题对象 | 被代理对象 | 代理对象 )
设计模式 结构型模式 -- 代理模式(动态代理(CGLIB动态代理)三种代理的对比(静态代理动态代理(JDK代理和CGLIB代理)优缺点使用场景))