代理模式-接口应用
代理模式目的是为了扩展和增强类或接口。代理模式通常可分为静态代理模式和动态代理模式。
1.静态代理模式
主要实现的原理是:代理类和被代理类同时实现一个主题接口,代理类持有被代理类的引用。
(1)新建一个公共接口UserInterface
(2)定义真实执行类RealUser并实现公共接口UserInterface
(3)定义代理类UserProxy实现公共接口UserInterface,并持有被代理类的实例。
2.动态代理是指在程序运行是动态的创建代理类。动态代理的使用方式主要分为两种:一种是基于接口的代理,另一种是基于累的代理。基于接口的代理方式是指通过JDK自带的反射类来生成动态代理类;基于类的代理方式是指通过字节码来实现类代理,如CGLIB和Javassist等。
一、基于JDK反射生成代理类
(1)定义一个公共接口UserServiceInterface
(2)定义真是用户角色类UserServiceImpl并实现公共接口UserServiceInterface
(3)定义代理类UserServiceProxy,实现InvocationHandler接口,并重写invoke()方法
二、CGLIB实现动态代理
(1)直接实现MethodInterceptor拦截器接口,并重写intercept()方法;
(2)新建Enhancer类,并设置父类和拦截器类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)