java 行为模式 责任链模式
2017-12-16 13:09
274 查看
责任链模式
意图:
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止适用性:
有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。 你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。可处理一个请求的对象集合应被动态指定。责任链模式的构成
2 具体传递者(ConcreteHandler):可以访问链中下一个对象,如果可以处理请求,就处理它,否则将请求转发给后继者
3 客户端(Client):向链中的对象发出请求
UML
1、有多个对象共同对一个任务进行处理。
2、这些对象使用链式存储结构,形成一个链,每个对象知道自己的下一个对象。
3、一个对象对任务进行处理,可以添加一些操作后将对象传递个下一个任务。也可以在此对象上结束任务的处理,并结束任务。
3、客户端负责组装链式结构,但是客户端不需要关心最终是谁来处理了任务。
public abstract class Handler { //下一级责任链 public Handler handler; //设置下一级责任链 public void setSuccessor(Handler handler){ this.handler=handler; } public abstract void request(int request); }
public class ConcreteHandler1 extends Handler { @Override public void request(int request) { if(request<10){ System.out.println("我是handler1,我处理了请求:"+request); }else { this.handler.request(request); } } }
public class ConcreteHandler2 extends Handler { @Override public void request(int request) { if(request>10){ System.out.println("我是handler2,我处理了请求:"+request); }else { System.out.println("请求"+request+"没人能处理"); } } }
public class Client { public static void main(String[] args) { //创建处理器 Handler handler1=new ConcreteHandler1(); Handler handler2=new ConcreteHandler2(); //客户端创建处理器的关联,形成链 handler1.setSuccessor(handler2); //创建任务,此处为一些数字,不同大小,处理器处理结果不同 int[] requests={4,10,59,2,16}; //调用处理器处理 for(int request:requests){ handler1.request(request); } } }
我是handler1,我处理了请求:4 请求10没人能处理 我是handler2,我处理了请求:59 我是handler1,我处理了请求:2 我是handler2,我处理了请求:16
http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html
相关文章推荐
- Java设计模式(19)——行为模式之责任链模式(chain of responsibilitiy)
- Java设计模式之责任链模式的详解(行为模式)
- java 设计模式-行为模式之责任链模式
- JAVA设计模式—责任链模式(Chain Of Responsibility)
- JAVA设计模式-责任链模式
- Java与设计模式(二十七)行为型--责任链模式
- Java设计模式-责任链模式(Chain of Responsibility)
- java 设计模式 行为模式 -Memento(备忘录模式)
- 我的Java设计模式-责任链模式
- JAVA 设计模式实例详解之责任链模式
- JAVA设计模式(十三)----责任链模式
- JAVA设计模式之责任链模式
- Java设计模式菜鸟系列(十八)责任链模式建模与实现
- Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)
- java行为设计模式——命令模式
- 行为模式/责任链模式--Chain of Responsibility Patern(转-吕震宇)
- Java设计模式之--责任链模式(Chain of Responsibility)
- java设计模式 -------- 行为模式 之 策略模式(4)
- Java 设计模式之状态模式的详解(行为模式)
- Java设计模式(14)责任链模式(Chain of Responsibility模式)