Java代理(一) 背景介绍
来源:互联网 发布:php开源网站统计系统 编辑:程序博客网 时间:2024/05/20 16:40
概念
为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。
代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。
为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间,从而在设计上获得了更大的灵活性。
从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。
事例
比如 场景是完成数据库的查询,并且记录查询前后花的时间
那么,从设计上
代理接口 subject是一个interface 提供查询数据库的操作,并不实现
委托类 realSubject 实现数据库的连接,查询,断开
代理类,在调用委托类之前,记录查询开始时候,调用之后,记录查询结束时间,打印出花费的时间
分类
按照代理的创建时期,代理类可以分为两种:
静态:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。
动态:在程序运行时运用反射机制动态创建而成。
阅读全文
0 0
- Java代理(一) 背景介绍
- Java代理模式及应用(一)代理模式介绍
- Java代理(一)
- 编译原理(一)背景介绍
- Linux Bridge 分析(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- Device Tree(一):背景介绍
- PL/SQL Developer使用技巧、快捷键
- 利用springmvc和mybatis实现简单的增删改查功能出现的小问题
- iOS学习资料
- POJ
- hashTable 与 HashMap的 区别
- Java代理(一) 背景介绍
- over oracle分析函数的用法
- Picking Deep Filter Responses for Fine-Grained Image Recognition
- 简单的线程池示例
- 2017Google hosts持续更新
- 用log4j管理tomcat的catalina日志
- 返回到原来的试图控制器
- 数据库连接的步骤
- HDU