设计模式之代理模式
定义
在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能
实现方式
1. 实现同一个接口,重载方法,并提供附加功能
2. 继承被代理类,重写方法,并提供附加功能
动态代理
定义
我们不事先为每个原始类编写代理类,而是在运行的时候,动态地创建原始类对应的代理类,然后在系统中用代理类替换掉原始类
实现
基于反射实现
意义
静态代理需要针对每个类都创建一个代理类,并且每个代理类中的代码都有点像模板式的“重复”代码,增加了维护成本和开发成本。
对于静态代理存在的问题,我们可以通过动态代理来解决。我们不事先为每个原始类编写代理类,而是在运行的时候动态地创建原始类对应的代理类,然后在系统中用代理类替换掉原始类
代理模式应用场景
1. 业务系统的非功能性需求开发,比如:监控、统计、鉴权、限流、事务、幂等、日志
2. 代理模式在 RPC、缓存中的应用
文章转载自PiPiD,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




