责任链模式的主要思想是是建立一个链处理单元,每一个单元如果满足条件都会处理请求。由于是链构建,如果一个单元不满足条件,那么就测试下一个单元等。每一条请求都会沿着链处理。
1、类图
2、实例代码
package com.leon.chain; public abstract class Chain { public static int One = 1; public static int Two = 2; public static int Three = 3; protected int threshold; protected Chain next; public void setNext(Chain chain) { this.next = chain; } public void message(String msg, int priority) { if (priority <= threshold) { writeMessage(msg); } if (this.next != null) { this.next.message(msg, priority); } } abstract void writeMessage(String msg); }
package com.leon.chain; public class Test { public static void main(String[] args) { Chain chain = createChain(); chain.message("level 3", Chain.Three); chain.message("level 2", Chain.Two); chain.message("level 1", Chain.One); } public static Chain createChain() { Chain chain1 = new A(Chain.Three); Chain chain2 = new B(Chain.Two); chain1.setNext(chain2); Chain chain3 = new C(Chain.One); chain2.setNext(chain3); return chain1; } } class A extends Chain { public A(int threshold) { this.threshold = threshold; } @Override void writeMessage(String msg) { // TODO Auto-generated method stub System.out.println("A:"+msg); } } class B extends Chain { public B(int threshold) { this.threshold = threshold; } @Override void writeMessage(String msg) { // TODO Auto-generated method stub System.out.println("B:"+msg); } } class C extends Chain { public C(int threshold) { this.threshold = threshold; } @Override void writeMessage(String msg) { // TODO Auto-generated method stub System.out.println("C:"+msg); } }
在这个例子中,level 1的Message走过了链中所有的单元。
A:level 3
A:level 2
B:level 2
A:level 1
B:level 1
C:level 1
A:level 2
B:level 2
A:level 1
B:level 1
C:level 1
原文链接:这里
相关推荐
本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态模式(State Pattern)。 **责任链模式**是一种使多个对象都有机会处理请求的模式,避免请求发送者与接收者之间的耦合。在...
责任链模式是指一个处理需要涉及多个过程或者角色参与处理,并基于某个约定组成一个链,每个过程或者角色拥有各自职责进行处理。责任链模式有效组织一个过程处理,同时子过程之间职责明确。在.NET平台中很常见此...
总的来说,职责链模式是一种非常实用的设计模式,它提供了一种方式来组织和分配责任,使得系统在处理请求时具有更好的灵活性和可扩展性。在实际开发中,例如在事件驱动系统、消息传递系统以及命令模式的实现中,职责...
例如责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...
总之,《设计模式:基于C#的工程化实现及扩展》是一本对于C#开发者来说非常有价值的参考资料,它不仅讲解了设计模式的理论,还提供了丰富的实践案例,帮助读者掌握如何在实际项目中应用这些模式,提升软件开发的专业...
2 责任链模式 3 策略模式 4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版...
4. **责任链模式**:责任链模式是行为型设计模式,它使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。在这个模式中,请求沿着处理者链进行传递,每个处理者都有机会处理请求,或者将请求传递...
责任链模式(Chain of Responsibility)是一种行为设计模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象能够处理这个请求为止。在Java中,我们可以通过接口和类的组合来实现这种模式。让我们深入探讨...
责任链模式是一种行为设计模式,它允许我们把请求沿着处理者链进行传递,直到某个处理者处理这个请求。这种模式让请求的发送者和接收者解耦,因为发送者无需知道哪个对象会处理请求,接收者也不知道其他处理者的存在...
3. **行为型模式**:包括责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。这些模式主要处理对象之间的交互和职责分配。 例如,单例模式...
责任链模式是设计模式中的一种行为模式,它允许在对象之间建立一条处理请求的链条,每个对象都包含对请求的处理逻辑,以及将请求传递给下一个对象的能力。这种模式使得请求可以在链上的对象之间传递,直到被某个对象...
责任链模式是一种行为设计模式,它允许我们把请求沿着处理者对象的链式结构进行传递,直到某个对象处理这个请求。这种模式使得我们能够将请求的发送者与接收者解耦,同时也允许在运行时动态地改变处理顺序或添加新的...
责任链模式是一种行为设计模式,它的核心思想是将请求的发送者和接收者解耦,通过将多个处理对象串联成一个处理链,使得请求沿着这个链进行传递,直到被某个对象处理。这种模式使得系统更加灵活,可以在运行时动态...
在 Java 开发中,责任链模式是一种重要的行为设计模式,它可以解耦请求的发送者和接收者,使多个对象都有机会处理请求。本文将详细介绍责任链模式的意图、解释、编程示例、适用场景、实际应用、优点和权衡。同时,还...
责任链模式是软件设计模式中的一种行为模式,它允许在对象之间传递请求,同时让接收者决定是否处理这个请求。这种模式将请求的发送者和接收者解耦,使得多个对象都有机会处理一个请求,而无需显式指定具体的处理者。...
这类模式关注对象之间的责任分配,如命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、访问者模式(Visitor)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略...
18. 责任链模式:责任链模式为请求创建一个接收者对象的链,请求沿着链传递,直到某个对象处理它。 19. 迭代器模式:迭代器模式提供了一种方法顺序访问集合对象的元素,而又不暴露其底层表示。 20. 访问者模式:...