代理模式属于结构型模式,为其他对象提供一种代理以控制对这个对象的访问。

Subject 类,定义了RealSubject 和Proxy 的共用接口,这样就在任何使用RealSubject 的地方都可以使用Proxy。
代理模式上,基本上有Subject角色,RealSubject角色,Proxy角色。其中:Subject角色负责定义RealSubject和Proxy角色应该实现的接口;RealSubject角色用来真正完成业务服务功能;Proxy角色负责将自身的Request请求,调用realsubject 对应的request功能来实现业务功能,自己不真正做业务。
静态代理
1. Subject类
public abstract class Subject {
public abstract void request();
}
2. Realsubject类
public class RealSubject extends Subject {
@Override
public void request() {
System.out.println("真实请求");
}
}
3. Proxy类
public class Proxy extends Subject{
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null){
realSubject = new RealSubject();
}
realSubject.request();
}
}
4. 调用
@SpringBootTest
class ProxyDemoApplicationTests {
@Test
void contextLoads() {
Subject subject = new Proxy();
subject.request();
}
}

动态代理
详情查看 : https://blog.youkuaiyun.com/javanbme/article/details/117222419
源码
https://download.youkuaiyun.com/download/javanbme/19026515
本文深入探讨代理模式,包括其在结构型模式中的地位和作用。介绍了Subject类作为RealSubject和Proxy的公共接口,以及Static Proxy和Dynamic Proxy的实现。通过示例代码展示了静态代理的实现,并提供了动态代理的参考资料链接,帮助读者理解如何在Java中应用代理模式进行对象访问控制。
1261

被折叠的 条评论
为什么被折叠?



