设计模式代理模式

定义

为其他对象提供一种代理以控制对这个对象的访问。涉及到的角色一般有三个

  • 抽象角色 声明真实对象和代理对象的共同接口,这样在任何使用真实对象的场合都可以使用代理对象

  • 代理角色 代理对象内部含有目标的引用,从而可以在任何时刻操作目标对象。且主要是为了在执行真实对象操作时附加其他的操作,相当于对真实对象进行了封装,不是为了代理而代理

  • 真实角色 定义了代理对象所代表的目标对象,代理角色所代表的真实对象,是我们最终引用的对象

场景

简单理解就是事情我不用去做,由其他人来替我完成。且在不用修改代理类的情况下添加新的功能。如调用日志,添加事务控制等。还有在 RMI 中,客户端调用服务端服务的时候,没办法直接调用接口方法,必须要实例化实现接口的类的对象,因此也用到了代理模式(动态代理)

分类

  • 静态代理
  • 动态代理

代码实践

3445275-2abe8519eefb0f07.png
3445275-6db6f037bc86f3ba.png
总结

猜你喜欢

转载自blog.csdn.net/weixin_33971977/article/details/86885207