java设计模式26_动态代理模式
来源:互联网 发布:毕向东java教程全集 编辑:程序博客网 时间:2024/06/05 17:00
动态代理模式
代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
实现
这个例子以代理银行的借款和收款说明
代码
package com.test;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;//第1步,银行的借款和收款接口业务接口interface IBank { void jiekuan(); void shoukuan();}// 第2步, 代理人,代理银行的借款收款业务class Person implements IBank { @Override public void jiekuan() { System.out.println("向银行借款"); } @Override public void shoukuan() { System.out.println("还款给银行"); }}// 第3步,代理类,需要实现InvocationHandler 接口class MyInvokeHandler implements InvocationHandler { private Object realObject; @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (realObject == null) return null; return method.invoke(realObject, args); } public Object getRealObject(Object realObject) { if (realObject == null) return null; this.realObject = realObject; Class c = realObject.getClass(); return Proxy.newProxyInstance(c.getClassLoader(), c.getInterfaces(), this); }}// 第4步,实现代理public class Test { public static void main(String[] args) { Person p = new Person(); MyInvokeHandler myInvokeHandler = new MyInvokeHandler(); IBank iBank = (IBank) myInvokeHandler.getRealObject(p); iBank.jiekuan(); iBank.shoukuan(); }}
运行结果:
向银行借款还款给银行
阅读全文
0 0
- java设计模式26_动态代理模式
- java设计模式_动态代理(dynamicProxy)
- (GOF23设计模式)_代理模式_动态代理
- java设计模式_代理模式_动态代理(带例子)
- java设计模式_代理模式
- 设计模式_代理模式(Java)
- -java 动态代理设计模式
- java动态代理设计模式
- java 设计模式 动态代理
- java设计模式--动态代理
- java模式设计- 动态代理
- Java设计模式-----Proxy模式(动态代理)
- Java设计模式-----Proxy模式(动态代理)
- JAVA设计模式--动态代理模式
- java设计模式—动态代理模式
- java设计模式之动态代理模式!
- java设计模式:动态代理模式 Proxy
- java设计模式-代理模式(静态代理,动态代理)
- 欢迎使用CSDN-markdown编辑器
- java设计模式25_访问者模式
- java-SE-3
- 【详细资料】中科微AT6558系列卫星定位SOC芯片规格书
- 正则表达式菜鸟教程5运算符优先级
- java设计模式26_动态代理模式
- 怎么就溢出了?
- Android开发中那些让你相见恨晚的方法、类或接口(2)
- 1023. 组个最小数
- 正则表达式菜鸟教程6匹配规则
- 找出所有满足如下条件的六位数:它是一个完全平方数(即为某个整数的平方);该数同时也是回文数(即该数等于它的逆序数)。(C++上机考试题2)
- MyEclipse常用快捷方式
- 前端基础
- 纳税服务系统【抽取BaseService、条件查询】