责任型模式之Chain of Responsibility(责任链)模式
2016-04-07 20:52
627 查看
1.如果你期望能够允许一个请求沿着对象链不断向上提交,直到这个请求被某一级处理,可使用Chain of Responsibility模式
2.举例
3.总结:Chain of Responsibility(责任链)模式可让每个对象都有一次机会决定自己是否处理请求,以便于避免请求的发送者与其接收者之间的耦合。当应用该模式后,客户端代码不必事先知道对象集合中哪个对象可提供自己所需要的服务。当客户端代码发出调用请求之后,该请求沿着责任链转发,知道找到提供该服务的对象为止。
4.参考:http://haolloyin.blog.51cto.com/1177454/342166/
2.举例
//抽象具体者实现处理方法,如果该具体类可处理则处理,否则传递给下个对象处理 public abstract class Handler { private Handler successor; public Handler getSuccessor(){ return successor; } public void setSuccessor(Handler successor){ this.successor = successor; } public void handleRequest(int requestLv) { // TODO Auto-generated method stub if(requestLv==getLv()){ System.out.println("该类可以处理请求"); } else { if(getSuccessor()!=null){ System.out.println("传递给下个对象"); getSuccessor().handleRequest(requestLv); } } } public abstract int getLv(); }
//第一个具体处理类 public class FirstHandler extends Handler{ @Override public int getLv() { // TODO Auto-generated method stub return 1; } }
//第二个具体处理类 public class SecondHandler extends Handler{ @Override public int getLv() { // TODO Auto-generated method stub return 2; } }
//测试类 public class Test { public static void main(String[] args){ Handler fh = new FirstHandler(); Handler sh = new SecondHandler(); fh.setSuccessor(sh); //fh.handleRequest(1); fh.handleRequest(2); } }
//结果 传递给下个对象 该类可以处理请求
3.总结:Chain of Responsibility(责任链)模式可让每个对象都有一次机会决定自己是否处理请求,以便于避免请求的发送者与其接收者之间的耦合。当应用该模式后,客户端代码不必事先知道对象集合中哪个对象可提供自己所需要的服务。当客户端代码发出调用请求之后,该请求沿着责任链转发,知道找到提供该服务的对象为止。
4.参考:http://haolloyin.blog.51cto.com/1177454/342166/
相关文章推荐
- 学习JavaScript设计模式之责任链模式
- JAVA设计模式之责任链模式详解
- Java设计模式之责任链模式(Chain of Responsibility模式)介绍
- JAVA设计模式之责任链模式
- OkHttp的Interceptor原理分析
- 职责链模式
- 责任链模式(未完成)--- 用时再写
- 大话设计模式 责任链模式
- 设计模式学习笔记——责任链模式
- 设计模式---责任链模式
- 设计模式之责任链模式
- java责任链模式
- 设计模式之禅学习笔记--责任链模式
- 责任链的方法化
- 设计模式(10)---责任链模式
- JavaScript设计模式--责任链模式
- 责任链模式 Chain of Responsibility
- Java设计模式之起始
- 责任链模式
- 责任链模式