设计模式之代理模式

所谓代理,是指具有与被代理对象相同的接口的类,客户端必须通过代理与被代理的目标类进行交互,而代理一般在交互的过程中(交互前后),进行某些特定的处理。

通俗一点就是说我想找个女朋友,但是要去约会,要和女孩子玩才能够找到女朋友,但是我是一个很害羞的人,所以我就去找媒婆给我找一个现成的女票,我不用去关系媒婆事怎么找的,用什么方式找的,我就继续打我的游戏,做我的事情,

代理模式又分为动态代理和静态代理,动态代理分为(jdk动态代理和cglid动态代理)

代理模式是面向接口的

1,静态代理

代码:

1-1接口方法

 

1-2代理对象

1-3目标对象

代理对象和目标对象都实现了接口,但是代理对象并不去做真正的逻辑处理,而是委托目标对象去做,它就自己做自己的其他事情(Spring AOP就很好的利用了代理模式)

1-4客户端(主函数模拟)

 

由上面的静态代理种可以看出它其实很不灵活,当我接口里面新增方法的时候,代理(Proxy)里面就要新增方法,不然调用不了,这样代码就会很冗余

 

所以引入了动态代理模式,动态代理的核心技术是反射,

 

2,动态代理(jdk)

2-1代理类

与前面的静态代理不同的是,当借口新增方法的时候我不需要手动的在代理类(Proxy)里去新增方法,我只需要通过反射的方式动态的去调用目标对象的方法,用jdk代理需要实现 InvocationHandler() 接口

 

2-2客户端(主函数)

 

 

3.cglib代理

通过继承的方式来实现,具体实现以后作更新

 

posted @   苏格拉的底牌  阅读(158)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示