[关键字]:java,design pattern,设计模式,《Java与模式》,Chain of Responsibility,责任链模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com)
[正文]:
package pattern.chainofresponsibility;
/**
* 责任链模式:Chain of Responsibility
* @version 2009-5-9
* @author Winty(wintys@gmail.com)
*/
public class ChainOfResponsibilityTest{
public static void main(String[] args){
Handler handler1 = new ConcreteHandler1();
Handler handler2 = new ConcreteHandler2();
Handler handler3 = new ConcreteHandler3();
//设置责任链
handler3.setSuccessor(handler2);
handler2.setSuccessor(handler1);
//发送命令
handler3.handleRequest();
}
}
/**
*抽象处理者
*/
abstract class Handler{
protected Handler successor;
public Handler getSuccessor(){
return successor;
}
public void setSuccessor(Handler successor){
this.successor = successor;
}
public abstract void handleRequest();
}
/**
*具体处理者
*/
class ConcreteHandler1 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete1");
System.out.println(" to class" + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler1");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler2 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete2");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler2");
}
}
}
/**
*具体处理者
*/
class ConcreteHandler3 extends Handler{
public void handleRequest(){
if(getSuccessor() != null){
System.out.print("Request passed:from class Concrete3");
System.out.println(" to class " + getSuccessor().getClass().getName());
getSuccessor().handleRequest();
}
else{
System.out.println("Request handled in ConcreteHandler3");
}
}
}
相关推荐
- 责任链模式:通过将请求封装为对象,允许将请求沿着处理者链传递。 - 命令模式:将命令请求封装为一个对象,以便使用不同的请求、队列请求或参数化请求。 - 解释器模式:定义语言的文法,并提供解释器来处理...
总结来说,奇正藏药北京办事处导入深度分销模式,是基于ARS战略理论,结合医药行业特点,通过精细化市场管理,强化渠道控制,提升客户关系,以实现区域市场的领先地位和企业可持续发展。这个过程中,团队建设、市场...
基于这些信息,制定以构建营销价值链为核心的市场战略,合理规划营销资源,建立目标管理责任制和营销系统支持平台。区域市场策略注重份额的数量和质量,通过精耕细作来提升市场份额。 2. 焦点客户:焦点客户是具有...
- 责任链模式(Chain of Responsibility Pattern):避免将请求的发送者和接收者耦合在一起,使得多个对象都有可能接收请求。源码中会展示如何构建一个处理请求的链。 - 命令模式(Command Pattern):将一个请求...
### 制造企业供应链管理模式及精益生产物流管理规划方案 #### 一、供应链管理模式概述 1. **供应链定义**: - 供应链是指围绕核心企业,通过对信息流、物流、资金流的控制,从原材料采购到最终产品交付给消费者的...
- 责任链模式(Chain of Responsibility):将请求封装为对象,然后让多个对象有机会处理这个请求,形成链式处理。 - 命令模式(Command):将命令封装为对象,以便于参数化不同操作,支持撤销操作。 - 解释器...
依赖于spring,可用于接口的调试及性能的展示,以及访问控制层的使用,简化控制层的繁琐代码,简化spring mvc的配置,替换的请求前的各个操作,重组性低,REST风格的接口使用简单,报告采用责任链模式设计,轻巧控制...
本培训课件主要围绕卓越绩效模式的理解、导入以及质量奖汇报材料的准备展开。 一、卓越绩效模式理解 卓越绩效模式源于国际上的质量奖项,如美国的波多里奇国家质量奖,它强调企业应从多维度审视自身,包括领导力、...
供应链管理模式导入后,企业资源管理的范围扩大,要求管理者将整条供应链上各节点企业的资源全部纳入考虑范围,使供应链上的资源得到最佳利用。 第三,供应链库存管理是以最终客户为中心的。供应链管理以最终客户为...
以上只是部分设计模式的简介,实际项目中可能涉及更多模式,如策略模式、命令模式、职责链模式等。通过理解和熟练运用这些设计模式,开发者可以编写出更加灵活、可维护的代码,提高软件开发效率。在“faif python-...
供应链管理的现代发展已经远远超越了传统的供应链模式,它涵盖了电子供应链管理、绿色供应链管理以及全球化供应链管理等多个重要领域。电子供应链管理(e-Supply Chain Management)是利用网络技术,尤其是互联网,...
最后,PPT还提到了责任链模式,虽然没有详细介绍,但枚举可以在构建职责链中扮演角色,每个枚举常量代表一个处理逻辑,形成一个处理请求的链条。 总结来说,这个PPT教案深入浅出地介绍了Java枚举的特性以及如何利用...
在这些模块中,我们可以看到许多设计模式的身影,如工厂模式用于创建对象,单例模式用于全局唯一实例,观察者模式用于事件驱动,以及责任链模式用于处理权限控制。 在用户管理中,Jive论坛可能采用了策略模式,为...
设计模式-责任链的演示项目,导入eclipse中可直接运行,编程语言:java 设计模式学习请参考博客 https://www.li-tian.net.cn/archives/2020-01-27-23-01-15
- **责任链模式**:将请求封装成对象,让多个对象都有机会处理这个请求,从而避免请求的发送者和接收者之间的耦合。 - **命令模式**:将请求封装为一个对象,以便使用不同的请求、队列或者日志请求,支持撤销操作...
绿色供应链管理是指在供应链管理中融入环保理念,以降低环境污染、提高资源效率和促进可持续发展为目标的一种管理模式。它强调企业在产品设计、生产、销售、使用到废弃的全生命周期中,充分考虑环境影响,实施绿色化...
【经营体实施启动大会】是基于阿米巴经营理论的一次企业改革启动活动,旨在引入稻盛和夫的阿米巴管理模式,以提高...通过这次启动大会,企业旨在系统地导入阿米巴经营模式,以期实现企业管理的优化和业绩的显著提升。
report项目请求通道采用责任链模式设计,扩展性极强,流程完全可控! ankang-report report 是一个开源的访问层框架,基于java平台,依赖于spring,以Mozilla Public License 2.0 协议发布。可用于接口的调试及性能...
通过分析源码,开发者不仅可以了解Struts 2的工作流程,还可以学习到设计模式的应用,如工厂模式、责任链模式、观察者模式等。同时,这对于自定义拦截器、扩展功能或者解决实际开发中遇到的问题都非常有帮助。因此,...
企业需导入与自身价值观相一致的营销理念,协调整个营销价值链,构建独特的营销模式,强化营销职能。 营销理念的发展经历了生产观念、产品观念、推销观念、营销观念以及全面营销观念的演变。生产观念强调高效率和...