您的位置:首页 > 其它

责任链模式拦截器实现

2018-04-02 14:59 190 查看
package gxx.proxy;

import java.lang.reflect.Method;

public class ResponsebilityChain {
public static void main(String[] args) {
Helloword proxy1=(Helloword)InterceptorJdkProxy.bind(new HelloworldImpl()
, "gxx.proxy.Interceptor1");

Helloword proxy2=(Helloword)InterceptorJdkProxy.bind(proxy1
, "gxx.proxy.Interceptor2");

Helloword proxy3=(Helloword)InterceptorJdkProxy.bind(proxy2
, "gxx.proxy.Interceptor3");
}

}

class Interceptor1 implements Interceptor{

@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器1的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器1的after方法");
}
}

class Interceptor2 implements Interceptor{

@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器2的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器2的after方法");
}
}

class Interceptor3 implements Interceptor{

@Override
public boolean before(Object proxy, Object target, Method method,
Object[] args) {
System.out.println("拦截器3的before方法");
return true;
}
@Override
public void around(Object proxy, Object target, Method method, Object[] args) {
}
@Override
public void after(Object proxy, Object target, Method method, Object[] args) {
System.out.println("拦截器3的after方法");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: