代理模式
来源:互联网 发布:淘宝朋友代付退款 编辑:程序博客网 时间:2024/06/05 02:35
代理模式:
1.静态代理
//抽象主题角色 interface Subject{ //定义一个方法 public void request(); } //具体主题角色 class realSubejct implements Subject{ //实现方法 public void request(){ Syso("简单实现......."); } } //代理主题角色 class Proxy implements Subejct{ //要代理那个实现类 private Subject subject=null; //默认被代理者 public proxy(){ subject=new RealSubject();//在构造函数中创建被代理对象 } //通过构造中传递被代理者 public Proxy(Subject _subject){ subject=_subject; } //实现接口中定义的方法 public void request(){ before(); subject.request(); after(); } //预处理 private void before(){ Syso("使用预处理..."); } //善后处理 private void after(){ Syso("善后处理...."); } }
2.动态代理
//抽象主题角色interface Subject{ //定义一个方法 public void request();}//具体主题角色public class RealSubject implements Subject{ @Override public void request() { System.out.println("小勇吃shi中....."); }}public class Subjecthandler implements InvocationHandler{ //声明呗代理对象 private Subject subject; public Subjecthandler(Subject _subject){ subject=_subject; } //委托处理方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //预处理 System.out.println("吃饭准备中....."); Object obj = method.invoke(subject, args); System.out.println("吃饭结束....."); return obj; }}public class Client { public static void main(String[] args) { // 具体主题角色 Subject subject = new RealSubject(); // 代理实例的处理Handler InvocationHandler handler = new Subjecthandler(subject); // 当前加载器 ClassLoader cl = subject.getClass().getClassLoader(); // 动态代理 Subject proxy = (Subject) Proxy.newProxyInstance(cl, subject.getClass() .getInterfaces(), handler); // 执行主题角色方法 proxy.request(); }}
动态代理很容易实现通用的代理类,只要在Invocationhandler的invoke方法
中读取持久化数据即可实现,而且还能实现动态切入的效果,这也是AOP编程事项.
阅读全文
0 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- 【HTML基础学习】Day 1
- 逻辑学 笔记二 推论的有效性和可靠性
- php 5.x 扩展开发要点
- NSWOJ-1107-奇偶数分离
- 清晨晓叙:matlab中的矩阵拼接
- 代理模式
- 自定义可折叠LinearLayout
- MapReduce教程:Hadoop
- 计算机网络---数据链路层与物理层
- poj 1062
- #pragma multi_compile_fwdbase
- JVM系列(一):Java类的加载机制
- 弱引用weak_ptr解决shared_ptr的循环引用
- 《LPD》之头文件,库文件,静态库和共享库