责任链模式(Chain of Responsibility) Java

原创 2016年06月02日 10:08:14


职责链模式(Chain of Responsibility)定义:

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。



类结构图:




代码


Handler

package ding.study.designpatterns.chainofresponsibility;

public abstract class Handler {
	/**
	 * 责任链下一个继承者
	 */
	protected Handler successor;
	public void setHandler(Handler successor){
		this.successor=successor;
	}
	
	/**
	 * 调用请求
	 * @author daniel
	 * @time 2016-6-2 上午9:53:43
	 * @param request
	 */
	public abstract void handlerRequest(int request);

}

 


HandlerImpl1责任链小于10处理类

package ding.study.designpatterns.chainofresponsibility;

/**
 * 责任链小于10处理类
 * 
 * @author daniel
 * @email 576699909@qq.com
 * @time 2016-6-2 上午9:55:12
 */
public class HandlerImpl1 extends Handler {

	@Override
	public void handlerRequest(int request) {
		if (request >= 0 && request < 10) {
			System.out.println("责任链小于10处理类处理");
		} else if (this.successor != null) {
			//交于下一个责任链执行
			this.successor.handlerRequest(request);

		}
	}

}


HandlerImpl2

package ding.study.designpatterns.chainofresponsibility;
/**
 * 责任链小于20大于10处理类
 * 
 * @author daniel
 * @email 576699909@qq.com
 * @time 2016-6-2 上午9:55:12
 */
public class HandlerImpl2 extends Handler {

	@Override
	public void handlerRequest(int request) {
		if (request >= 10 && request < 20) {
			System.out.println(" 责任链小于20大于10处理类");
		} else if (this.successor != null) {
			//交于下一个责任链执行
			this.successor.handlerRequest(request);

		}
	}

}


HandlerImpl3

package ding.study.designpatterns.chainofresponsibility;
/**
 * 大于等于20的处理类
 * @author daniel
 * @email 576699909@qq.com
 * @time 2016-6-2 上午9:57:49
 */
public class HandlerImpl3 extends Handler {

	@Override
	public void handlerRequest(int request) {
		if (request >= 20 ) {
			System.out.println("  大于等于20的处理类 处理");
		} else if (this.successor != null) {
			//交于下一个责任链执行
			this.successor.handlerRequest(request);

		}
	}

}

Zmaiin

package ding.study.designpatterns.chainofresponsibility;
/**
 * 职责链模式(Chain of Responsibility)定义:
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。



数字:1用-责任链小于10处理类处理
数字:5用-责任链小于10处理类处理
数字:11用- 责任链小于20大于10处理类
数字:21用-  大于等于20的处理类 处理
数字:20用-  大于等于20的处理类 处理
数字:9999用-  大于等于20的处理类 处理


 * @author daniel
 * @email 576699909@qq.com
 * @time 2016-6-2 上午10:04:43
 */
public class Zmain {

	/**
	 * @author daniel
	 * @time 2016-6-2 上午9:58:42
	 * @param args
	 */
	public static void main(String[] args) {


		HandlerImpl1 handler1=new HandlerImpl1();
		HandlerImpl2 handler2=new HandlerImpl2();
		HandlerImpl3 handler3=new HandlerImpl3();
        handler1.setHandler(handler2);
        handler2.setHandler(handler3);
        int[] request={1,5,11,21,20,9999};
		for(int i:request){
			System.out.print("数字:"+i+"用-");
			handler1.handlerRequest(i);
		}
	}

}



输出结果



源代码:


https://github.com/dingsai88/StudyTest/tree/master/src/ding/study/designpatterns/chainofresponsibility
























JAVA设计模式—责任链模式(Chain Of Responsibility)

定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 类型:对象行为型模式 类图: ...
  • FX_SKY
  • FX_SKY
  • 2013年01月07日 14:13
  • 1301

设计模式(十三)----- 责任链模式(Chain of Responsibility)----(JAVA版)

责任链模式      使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 这一模式的想法是,给多个...

Java开发中的23种设计模式详解----责任链模式(Chain of Responsibility)

接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任...
  • sjyttkl
  • sjyttkl
  • 2017年06月21日 12:12
  • 171

java设计模式17——责任链模式(Chain of Responsibility)

接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任...

JAVA--责任链模式(Chain of Responsibility)--设计模式十七

1,概述:            (1)责任链的目的就是通过给予多个对象处理请求的机会,以解除请求的发送者和 接受者之间的耦合               (2)有多个对象,每个对象持有...

浅谈Java设计模式(十七)责任链模式(Chain of Responsibility)

前言: 接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,...

JAVA设计模式(17) —<行为型>责任链模式(Chain of Responsibility)

1 定义: 责任链模式(Chain of Responsibility) Avoid coupling the sender of a request to its receiver by givi...

Java设计模式之--责任链模式(Chain of Responsibility)

概念: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上...
  • lqh517
  • lqh517
  • 2016年06月23日 12:59
  • 151

【行为型模式】责任链模式(chain of responsibility)之23种java设计模式

LeaveRequest类 封装请假的基本信息 public class LeaveRequest { private String empName; private int leaveDa...

设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 责任链模式(Chain of Responsibility) - Java实现

设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 责任链模式(Chain of Responsibility) 在责任链模式里,很多对象由每一个对...
  • achi010
  • achi010
  • 2017年06月16日 21:58
  • 78
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:责任链模式(Chain of Responsibility) Java
举报原因:
原因补充:

(最多只允许输入30个字)