代理模式主要为其他对象提供一种代理以控制这个对象的访问. 在某些情况下, 一个对象不想或者不能直接引用另一个对象, 而代理对象可以在客户端和目标对象之间起到中介的作用, 好比你将一些繁琐的事情交给第三方去管理, 那么第三方就是你的代理, 其他人只会去找这个代理, 而不会去找你, AOP 本身就是基于动态代理实现的, 所以掌握了代理模式对 AOP 的学习很有帮助的哦.
本文将给大家介绍代理模式的两种实现方式, 静态代理和动态代理, 并介绍相关使用场景
一, 代理模式中涉及到的角色
抽象角色: 为真实对象和代理对象提供一个共同的接口, 一般是抽象类或者接口.
代理角色: 代理角色内部含有对真实对象的引用, 从而可以操作真实对象, 同时代理对象提供与真实对象相同的接口以便在任何时刻都能够代替真实对象. 同时, 代理对象可以在执行真实对象的操作时, 附加其他操作, 相当于对真实对象的功能进行拓
来源: https://yq.aliyun.com/articles/708332