简介即ProxyPattern,23种java常用设计模式之一。代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问,下面我们一起来看看Java对象代理的一些笔记吧。
代码如下复制代码
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
//代理需要实现的接口
interface IVehical {
//例如我这里写了两个接口
void run();
void say();
}
//concrete implementation
class Car implements IVehical{
//下面这两个方法,作为接口的实现方法,如果接口中没有这些方法,而在这里出现了多余的方法程序将编译不过。
//每次调用这两个方法都会触发代理对象中的invoke方法。
public void run() {
System.out.println("Car isrunning");
}
public void say()
{
System.out.println("just one!");
}
}
//proxy class
//这个类是用来创建代理对象的,这里只是对它进行了简单的封装
class VehicalProxy {
private IVehical vehical;
public VehicalProxy(IVehical vehical) {
this.vehical = vehical;
}
/
/*
* 这个的作用在我们需要对一个做日志或者bug调试的时候非常有作用,因为我们不应该把调试代码或者是打
* 印日志代码写在对象中,这样我们就可以将日志的代码添加到对象的代理中,从而将业务与程序的框架相
* 关的功能分离,从而保证了代码的“纯净性”。
* output:
* --before running...
* Car is running
* --after running...
* */