接口
interface Subject{
public String say(String name,int age) ; // 定义抽象方法say
}
真实主题类
class RealSubject implements Subject{ // 实现接口
public String say(String name,int age){
return "姓名:" + name + ",年龄:" + age ;
}
}
代理类
class MyInvocationHandler implements InvocationHandler{
private Object obj ;
public Object bind(Object obj){
this.obj = obj ; // 真实主题类
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this) ;
}
public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
Object temp = method.invoke(this.obj,args) ; // 调用方法
return temp ;
}
}
测试类
public class DynaProxyDemo{
public static void main(String args[]){
Subject sub = (Subject)new MyInvocationHandler().bind(new RealSubject()) ;
String info = sub.say("tom",20) ;
System.out.println(info) ;
}
}
分享到:
相关推荐
NULL 博文链接:https://shaw-n-lu.iteye.com/blog/1747124
动态代理设计模式 日志和源码 动态代理设计模式 日志和源码
Java设计模式——代理设计模式(静态代理和动态代理) 各种情况例子源码
详细而又简单的讲述了java动态代理设计模式
动态代理设计模式详解.pdf动态代理设计模式详解.pdf动态代理设计模式详解.pdf动态代理设计模式详解.pdf动态代理设计模式详解.pdf动态代理设计模式详解.pdf
动态代理设计模式-源码
java模式设计-代理模式之动态代理.ppt
Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)Java设计模式之代理模式(结构)
设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式设计模式--代理模式
设计模式之代理模式 学习
java常用设计模式及JDK与CGLIB实现动态代理区别(源码) /** * 使用cglib动态代理 * @author * */ public class BookFacadeProxy implements MethodInterceptor{ private Object target; @Override public...
.net实现设计模式之代理模式
JAVA设计模式之代理模式实例
设计模式 代理模式 c#
自己编写的设计模式示例,绝对不含伪代码,示例简单易懂 适合初学者学习使用
java设计模式(工厂模式,动态代理,责任链模式……)实例源码
java 代理模式实现代码及设计详解:动态代理模式、静态代理模式
01.装饰者设计模式和动态代理设计模式.wmv