Javase 专题 反射和动态代理 aop

 动态代理与AOP面向切面编程
 *至于什么是面向切面编程自己百度这里要表达的意思就是

 *再调用固定的方法中间有些固定的方法调用的实现


/**
 * 动态代理与AOP面向切面编程
 *至于什么是面向切面编程自己百度这里要表达的意思就是
 *再调用固定的方法中间有些固定的方法调用的实现
 */
interface Jisuan{
	public int jisuan(int a, int b);
}
class Add implements Jisuan{
	@Override
	public int jisuan(int a, int b) {
		return a+b;
	}
}

class Sub implements Jisuan{
	@Override
	public int jisuan(int a, int b) {
		return a-b;
	}
}

class MyInvocationHandler1 implements InvocationHandler{

	Object obj; //声明被代理类
	public void setObject(Object obj){
		this.obj=obj;
	}
	@Override
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		System.out.println(method.getName());
		System.out.println(args);
		//这里可以写固定的方法调用
		Util.aa();
		Object returnobj = method.invoke(obj, args);
		System.out.println(returnobj);
		Util.bb();
		return returnobj;
	}
}
class Util{
	public static void aa(){
		System.out.println("========aa======");
	}
	public static void bb(){
		System.out.println("========bb======");
	}
}

class MyProxy {
	public static Object newInstances(Object obj){
		MyInvocationHandler1 MyInvocationHandler1 = new MyInvocationHandler1();
		MyInvocationHandler1.setObject(obj);
		return Proxy.newProxyInstance(obj.getClass().getClassLoader(), 
				obj.getClass().getInterfaces(), MyInvocationHandler1);
	}
}

public class Test3 {

	public static void main(String[] args) {
		Jisuan add = new Add();
		Jisuan myProxy = null;
		myProxy= (Jisuan) MyProxy.newInstances(add);
		myProxy.jisuan(11, 23);
		
		Jisuan sub = new Sub();
		myProxy = (Jisuan) MyProxy.newInstances(sub);
		myProxy.jisuan(11, 23);
	}
}

我个人认为 aop就是一个编程方式,不存在切面编程取代面向对象编程的事情,我原来听到有人说将来面向切面编程会取代面向对象编程.  我们拭目以待吧...世间一切都不好说呵呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值