责任链模式(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
  • 1242

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

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

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

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

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

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

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

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

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

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

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

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

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

设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 责任链模式(Chain of Responsibility) 在责任链模式里,很多对象由每一个对...

责任链模式(Chain Of Responsibility Pattern)

行为模式概述 1、行为型模式(BehavioralPattern)是对在不同的对象之间划分责任和算法的抽象化。 2、行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。 3、通过...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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