java的代理模式实例
2016-07-26 09:56
337 查看
接口文件Hello.java
package com.company.staticProxy; /** * Created by ken on 2016/7/25. */ public interface Hello { void say(String str); }
实现文件HelloImpl.java
package com.company.staticProxy; /** * Created by ken on 2016/7/25. */ public class HelloImpl implements Hello { public String name = "奥巴马"; public String name2 = "小奥巴马"; @Override public void say(String str) { //System.out.println("之前"); System.out.println("hello " + str); //System.out.println("之后"); } }
动态代理文件DynamicProxy.java
package com.company.dynamicProxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; /** * Created by ken on 2016/7/25. */ public class DynamicProxy implements InvocationHandler { // 定义代理对象 public Object target; // 注入代理对象 public DynamicProxy(Object object) { this.target = object; } /** * * @param proxy 被代理对象 * @param method 代理对象的方法(核心业务) * @param args 调用代理方法所需参数 * @return 代理对象 * @throws Throwable */ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //before before(); //核心业务 Object obj = method.invoke(target, args); //after after(); return obj; } //before public void before(){ System.out.println("this is before"); } //after public void after(){ System.out.println("this is after"); } }
主文件MainTest.java
package com.company.dynamicProxy; import com.company.staticProxy.Hello; import com.company.staticProxy.HelloImpl; import java.lang.reflect.Proxy; /** * Created by ken on 2016/7/25. */ public class MainTest { public static void main(String[] args) { //被代理对象 HelloImpl hello = new HelloImpl(); //创建动态代理对象 DynamicProxy proxy = new DynamicProxy(hello); // 获取被代理对象的代理 Hello result = (Hello) Proxy.newProxyInstance(hello.getClass().getClassLoader(),hello.getClass().getInterfaces(),proxy); result.say("思路网络科技"); } }
相关文章推荐
- java设计模式——动态代理之实例讲解(3)
- Java动态代理模式(Proxy)实例
- java设计模式-代理模式(实例讲解)
- Java使用设计模式中的代理模式构建项目的实例展示
- JAVA 静态代理模式详解及实例应用
- Java设计模式之代理模式与装饰模式实例详解
- Java使用设计模式中的代理模式构建项目的实例展示
- Java设计模式之静态代理模式实例分析
- 实例讲解Java设计模式编程中如何运用代理模式
- 实例探索Java模式之路——代理模式
- Java设计模式之动态代理模式实例分析
- Java中的代理模式详解及实例代码
- java 代理模式
- 说说Java中的代理模式
- 设计模式(2)--java动态代理及jdk和cglib的区别
- Java动态代理模式
- Java代理(jdk静态代理、动态代理和cglib动态代理)实例及总结
- JAVA 代理模式(Proxy)
- java设计模式:代理模式
- 转!!Java的三种代理模式