概括:想要在调用UserSvc的所有方法时,在每个方法前或后都做一些处理,又不想修改实现类,或无法修改实现类的情况下,使用动态代理模式。
接口:
public interface UserSvc {
public void getUserInfo();
public void CreateUser();
}
实现类:
public class UserSvcImpl implements UserSvc{
@Override
public void getUserInfo() {
System.out.println("get user info.");
}
@Override
public void CreateUser() {
System.out.println("create a new user.");
}
}
动态代理类:(除了你希望的处理细节,这个类的其他地方基本不用改,直接拿来用就行了)
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class UserProxy implements InvocationHandler {
Object obj = null;
public Object bind(Object obj) {
this.obj = obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj
.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("执行被代理的类的方法前,我要做一些处理。");
method.invoke(this.obj, args);
System.out.println("执行被代理的类的方法后,我还要做一些处理。");
System.out.println("");
return null;
}
}
测试类:
public class Test {
public static void main(String[] args) {
UserProxy proxy = new UserProxy();
UserSvc userSvc = (UserSvc) proxy.bind(new UserSvcImpl());
userSvc.getUserInfo();
userSvc.CreateUser();
}
}
输出结果:
执行被代理的类的方法前,我要做一些处理。
get user info.
执行被代理的类的方法后,我还要做一些处理。
执行被代理的类的方法前,我要做一些处理。
create a new user.
执行被代理的类的方法后,我还要做一些处理。
分享到:
相关推荐
云计算 物联网 智慧城市 数字城市 概念定义 一句话概括
一句话概括280部国学经典.doc
java资料分享概括
java面向对象要点概括: 继承、多态、方法重载、方法重写……
Java反射机制与动态代理文档详细的概括了他的作用,运行机制!希望对读者有用
一张图片概括java虚拟机的概况
IIO的整合,包括考试的重点,方便背诵,另外每个ITTO都加上了一句概括,方便理解49个子过程,加深记忆
在高考试题中用一句话或规定的字数概括新闻或简讯的内容PPT学习教案.pptx
SAP全面概述,中文版。
概括总结了java的一些基础知识,便于初学者入门。
1.阐述 Java 7 和 Java 8 的区别 2.Java SE 8中最流行和最著名的最新功能是什么? 3.是什么使Java SE 8优于其他? 4.在Java SE 8中定义Lambda表达式? 5.为什么将Lambda Expression创造为代码块? 6.Lambda表达式和...
适用于教学过程中的Java实验题目,具有很强的概括性,每一章节一题,共六章。包括了Java及面向对象的相关内容
学习方法: 1.记笔记 2.动手写代码 3.代码需要加注释 4.不懂就问 5.上课一定要互动
三年级抓关键句概括段意,三年级抓关键句概括段意课件,三年级抓关键句概括段意PPT
本文档概括了Java笔试题,涵盖了Java的基础知识、Java集合框架、Spring框架、J2EE事务、Java多线程、UML类图等多个方面的知识点。 访问权限控制 在Java中,存在五种访问权限控制等级,从最宽松到最严格控制等级...
三年级抓关键句概括段意PPT教案.pptx
java基础总结大全,其中有面试过程中百分百会被问到的问题。
对于初学Java知识者有较大的帮助,对于java知识结构体系一目了然,方便对知识的复习。
有关java方面的正则表达式,可以供平时参考的,常用的
本人学习java的一段时间后的小结,基本概括了java基础 希望对大家有所帮助