随笔 - 0, 文章 - 11, 评论 - 0, 引用 - 0
数据加载中……

责任链模式 简单模拟 Interceptor 拦截器

结构图:

Intercept Interface :
public interface Intercept {
    
public void intercept (ActionInvocation invocation) ;
}

First Intercept Implement:
public class FirstIntercept implements Intercept {

    
public void intercept(ActionInvocation invocation) {
        System.out.println(
"begin First Intercept to do somethin");
        
try {
            invocation.invoke() ;
        } 
finally {}
        System.out.println(
"end First Intercept to do somethin");
    }

}

Second Intercept Implement :
public class SecondIntercept implements Intercept {

    
public void intercept(ActionInvocation invocation) {
        System.out.println(
"begin Second Intercept to do somethin");
        
try {
            invocation.invoke() ;
        } 
finally {}
        System.out.println(
"end Second Intercept to do somethin");
    }

}

Third InterceptImplement :
public class ThirdIntercept implements Intercept {

    
public void intercept(ActionInvocation invocation) {
        System.out.println(
"begin Third Intercept to do somethin");
        
try {
            invocation.invoke() ;
        } 
finally {}
        System.out.println(
"end Third Intercept to do somethin");
    }

}

ActionInvocation :
import java.util.ArrayList;
import java.util.List;

public class ActionInvocation {
    
private static int index = 0 ;
    
private List<Intercept> intercepts = new ArrayList<Intercept> ();
    
    
/*
     * 这里用构造加载拦截器
     
*/
    
public ActionInvocation () {
        intercepts.add(
new FirstIntercept()) ;
        intercepts.add(
new SecondIntercept()) ;
        intercepts.add(
new ThirdIntercept()) ;
    }

    
public void invoke () {
        
if (index < intercepts.size()) {
            intercepts.get(index
++).intercept(this); ;
        }
    }
}

执行结果:
begin First Intercept to do somethin
begin Second Intercept to do somethin
begin Third Intercept to do somethin
end Third Intercept to do somethin
end Second Intercept to do somethin
end First Intercept to do somethin

流程图:

posted on 2014-05-14 17:32 00001000 阅读(362) 评论(0)  编辑  收藏 所属分类: 设计模式


只有注册用户登录后才能发表评论。


网站导航: