代理模式
来源:互联网 发布:牵引变电所接地网优化 编辑:程序博客网 时间:2024/06/06 20:22
客户端需要某对象时其实他并不关心是否是该对象,只要能提供相同功能就可以,因此可以给他提供一个代理。
为什么要使用代理
原因可以有很多中,比如:
- 对象创建成本较大且不一定需要使用
- 对象在远程主机
- 目标对象功能不足
这些情况都可以使用代理模式
简单代理模式
使用组合方式,代理实现与被代理对象相同接口并保有一个被代理对象。
因为他拥有和被代理对象相同的接口,因此调用方可以使用它,而此时我们就可以在代理中添加逻辑操作,比如spring aop就可以通过代理完成。或者用代理完成懒加载,只在对象真正需要时才进行创建,这也是hibernate的懒加载实现方式。
动态代理
通过实现InvocationHandler接口,编写动态代理类,将对对象的方法调用全部放在了invoke方法中通过反射执行。
可以通过Java提供的动态代理方便的生成代理类,并且可以编写代理工厂
spring中的aop与简单的动态代理区别在于它更进一步,它使用配置文件决定代理中执行什么操作,达到了更彻底的解耦,当需要扩充功能时无需修改代理工厂,只需要修改配置文件即可
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- 由Mybatis发现的一个坑
- Mac截图
- 一个18届程序媛的offer血泪史
- CSRF XSS(XSRF) CORS OPTIONS(HTTP)概念理解
- 笔记_计算机网络_Python socket编程
- 代理模式
- Android Activity生命周期详解
- android 6.0运行时权限
- HDU 1024 Max Sum Plus Plus【DP+滚动数组】
- org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name
- 配置hadoop-1.2.1 eclipse开发环境 Run as hadoop
- Spring MVC 跨域
- Java day8
- 策略模式