3、静态代理模式
2016-03-16 21:02
155 查看
![](file:///var/folders/tw/27fs56m557sc37gt8kl_bk600000gn/T/cn.wiz.wiznoteformac/WizNote/3e13affc-e283-4482-9de6-c5618a06d3da/index_files/unchecked.png)
java中代理模式可以理解为用一个代理类去替代实际的类运行一些逻辑,可以在运行被代理类的前后加上一些逻辑处理。
![](file:///var/folders/tw/27fs56m557sc37gt8kl_bk600000gn/T/cn.wiz.wiznoteformac/WizNote/3e13affc-e283-4482-9de6-c5618a06d3da/index_files/unchecked.png)
静态代理实现:
1、定义一个接口规范,供代理类和被代理类实现,这样代理类和被代理类都可以通过接口实例化
2、定义被代理类
3、定义代理类,里面实例化被代理类,并进行调用
![](file:///var/folders/tw/27fs56m557sc37gt8kl_bk600000gn/T/cn.wiz.wiznoteformac/WizNote/3e13affc-e283-4482-9de6-c5618a06d3da/index_files/unchecked.png)
静态代理角色有:抽象角色、委托类或被代理类、代理类
![](file:///var/folders/tw/27fs56m557sc37gt8kl_bk600000gn/T/cn.wiz.wiznoteformac/WizNote/3e13affc-e283-4482-9de6-c5618a06d3da/index_files/unchecked.png)
代码举例
抽象角色:
interface Subject{
void operate();
}
委托类:
public RealObject implements Subject {
public void operate(){
System.out.print("执行真正的方法");
}
}
代理类
public Class ProxyObject implements Subject{
private Subject sub;
Proxy{
sub = new Subject();
}
public void operate(){
System.out.print("调用委托类前可以加逻辑");
//调用被代理类方法
sub.operate();
System.out.print("调用委托类后可以加逻辑");
}
}
关于动态代理,这两天有时间再总结一下吧。
相关文章推荐
- 剑指offer 复杂链表的复制 (有向图的复制)
- 剑指offer 二叉搜索树与双向链表
- 过年“飞”回家?携带移动电源登机需注意!
- 博客专栏目录页
- Android:Paletee颜色提取用法(调色板)
- 滚动数组
- mysql sql 笔记-获取分组中某个字段的最大的行
- 积极达成:处理好情绪再处理问题
- workman php开源服务器框架初学(一)
- 测试脚本被调用的参数数量是否正确
- POI 2004 Cave
- 多线程 : 使用Lock 和 Condition 实现线程间互斥与通信
- uva10158(并查集)
- 腾讯云服务器上tomcat7使用Godaddy证书
- PICT用户手册 [转]
- 剑指offer 连续子序列和
- Storm实战常见问题及解决方案
- 6.1母版页建立
- lightoj 1220 - Mysterious Bacteria 【数学】
- Linux下Opencv的安装及配置使用