`

第十章 责任链模式

阅读更多

1责任链模式

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

责任链模式的关键是将用户的请求分派给许多对象,这些对象被组织成一个责任链,即每个对象含有后继对象的引用,并要求责任链上的每个对象,如果能处理用户的请求,就做出处理,不再将用户的请求传递给责任链上的下一个对象;如果不能处理用户的请求,就必须将用户的请求传递给责任链上的下一个对象。

2责任链模式-结构

模式的结构中包括两种角色:

  • 处理者(Handler)
  • 具体处理者(ConcreteHandler) 



 3责任链模式-场景描述

游戏击鼓传花,一旦名花有主就唱歌

4责任链模式-场景分析

 

  • 处理者
    参加游戏的人传花者 Player
  • 具体处理者
    具体传花者
    张三
    李四
    王五
    赵六



 5责任链模式-代码实现

package patterns.ResponsibilityChain;

public abstract class Player {
	public Player nextPlayer;

	public abstract void handle();
	public Player getNextPlayer() {
		return nextPlayer;
	}

	public void setNextPlayer(Player nextPlayer) {
		this.nextPlayer = nextPlayer;
	}
	
}


package patterns.ResponsibilityChain;

public class ZhangSanPlayer extends Player {

	@Override
	public void handle() {
		if(getNextPlayer()!=null){
			getNextPlayer().handle();
		}else{
			System.out.println("zhang san sing");
		}
	}

}



package patterns.ResponsibilityChain;

public class LisiPlayer extends Player {

	@Override
	public void handle() {
		if(getNextPlayer()!=null){
			getNextPlayer().handle();
		}else{
			System.out.println("li si sing");
		}
	}

}


package patterns.ResponsibilityChain;

public class WangwuPlayer extends Player {

	@Override
	public void handle() {
		if(getNextPlayer()!=null){
			getNextPlayer().handle();
		}else{
			System.out.println("wang wu sing");
		}
	}

}


package patterns.ResponsibilityChain;

public class Client {
	public static void main(String[] args) {
		System.out.println("开始敲鼓");
		Player zs = new ZhangSanPlayer();
		Player ls = new LisiPlayer();
		zs.setNextPlayer(ls);
		Player ww = new WangwuPlayer();
		ls.setNextPlayer(ww);
		System.out.println("鼓停");
		zs.handle();
	}
}

 

6责任链模式的优点

责任链中的对象只和自己的后继是低耦合关系,和其他对象毫无关联,这使得编写处理者对象以及创建责任链变得非常容易。
当在处理者中分配职责时,责任链给应用程序更多的灵活性。
应用程序可以动态地增加、删除处理者或重新指派处理者的职责。
应用程序可以动态地改变处理者之间的先后顺序。
使用责任链的用户不必知道处理者的信息,用户不会知道到底是哪个对象处理了它的请求。

  • 大小: 43.7 KB
  • 大小: 28.5 KB
分享到:
评论

相关推荐

    10物流与供应链管理-风铃-第十章 供应链集成.pptx

    供应链管理模式主要包括以制造企业、批发商、零售商为主导以及以第三方物流(3PL)为主导的模式。3PL是指由专业物流公司为其他企业提供物流服务,这种模式强调合同物流、业务外包和利润中心的特性,有助于企业降低...

    供应链管理第6版习题与案例集第10章 供应链风险管理.pdf

    供应链风险管理是供应链管理领域的重要组成部分,它关注于识别、评估、优先级排序和应对供应链中可能出现的各种风险。供应链风险可能来源于内部操作失误、外部环境变化、供应商不稳定、市场需求波动、自然灾害等因素...

    第十章适时生产系统和全面质量管理.ppt

    JIT系统为企业带来诸多益处,如降低成本、提高质量、提升员工责任感以及降低未售商品风险。以戴尔公司为例,其运用JIT理念,实现了订单与生产、销售与现金流之间的高效对接,显著优于竞争对手。 JIT与传统的存货...

    JAVA Design Pattern

    行为型模式主要关注对象之间的交互和责任分配,比如策略模式、模板方法模式、观察者模式、访问者模式、命令模式、迭代器模式、备忘录模式、状态模式、解释器模式和职责链模式。这一章将详细讲解这些模式在JAVA编程中...

    pro Object c Design patterns for ios

    - **责任链模式**:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 8. **第二十章至第二十二章:算法封装模式** - **内容概述**:这部分探讨了如何封装算法。 - **知识点**: - **...

    Thinking in Patterns 英文原版

    第十章讲解了解释器模式及其动机,同时还提供了Python语言的概述。这一章节展示了如何利用Python语言特性来构建解释器,以及如何从Java控制Python解释器。 #### 十二、回调 第十一章探讨了观察者模式,这是一种行为...

    《应用密码学》 (上) CHM格式

    第十章 使用算法 186 10.1 选择算法 186 10.2 公钥密码与对称密码 188 10.3 通信信道加密 188 10.4 加密数据存储 191 10.5 硬件加密与软件加密 194 10.6 压缩、编码、加密 195 10.7 检测加密 196 10.8 密文中隐藏...

    生物柴油产业发展政策.doc

    第十章 政策措施: 实施一系列经济激励、税收优惠和资金支持政策,促进生物柴油产业的发展。 第十一章 监视管理: 建立完善的监管体系,对生产、销售和使用环节进行有效监控,确保法规的执行和市场的公正。 第十二...

    现代农业循环项目可研.docx

    **第十章 投资估算及资金筹措** 报告对建设投资、建设期利息、流动资金、总投资和资金筹措进行了详细估算,制定了资金使用计划。 **第十一章 财务效益、经济和社会效益评价** 通过对成本、收入、税收等的分析,评估...

    模板-其他企业信息化项目可行性研究报告.doc

    **第十章 工程风险分析与控制** 此部分识别了可能的风险,如技术难题、预算超支、员工抵触等,并提出了相应的风险管理策略,以降低风险对项目的影响。 **第十一章 效益分析** 最后,报告对项目的经济效益进行了...

    动漫科技产业园项目可行性报告.pdf

    **第十章 组织机构及劳动定员** 设立合理的组织架构,计划招聘专业人才,确保项目的高效运作。 **第十一章 进度安排及实施方案** 项目进度安排明确,分为前期准备、施工阶段、运营阶段等多个步骤,确保按计划进行...

    专题资料(2021-2022年)3万吨食用油仓储设施建设可行性研究报告修改00.doc

    第八章至第十章通常涉及项目的组织管理、进度安排、招投标程序以及后期的运营和维护计划,这些都是保证项目成功实施的重要环节。 总体来说,这个3万吨食用油仓储设施建设工程是一个结合了经济发展、市场需求、技术...

    东华大学434国际商务专业基础2021年考研专业课初试大纲.pdf

    - **第十章** **国际企业的战略**: - 战略规划与执行的重要性。 - 全球扩张与利润增长的关系。 - 成本压力与市场适应性之间的平衡。 - 不同战略选择的优缺点分析。 - **第十一章** **国际企业的组织**: - ...

    Windows 程序设计(第5版)(上、下册)--详细书签版

    第十章 菜单及其他资源 10.l 图标、光标、字符串和定制资源 10.1.1 将图标添加到程序 10.1.2 获取图标句柄 10.1.3 在程序中使用图标 10.1.4 使用自定义光标 10.1.5 字符串资源 10.1.6 定制资源 ...

    PMPBOK 2008知识点汇总

    ### 第十章 项目沟通管理 #### 沟通的分类 沟通可以分为正式和非正式、垂直和水平、内部和外部等多种类型,有效沟通是项目成功的关键。 #### 干系人权力/利益方格 干系人权力/利益方格是用于分析干系人的重要性和...

Global site tag (gtag.js) - Google Analytics