Java设计模式-责任链模式

本文介绍了Java中的责任链模式,包括模式定义、优缺点分析以及实现方式。责任链模式通过对象间的引用形成一条链,使得请求在链上自动传递,实现了请求发送者和处理者的解耦。文章还提供了代码示例和测试,帮助理解如何创建和使用责任链。然而,该模式可能存在请求未被接收的风险,并可能导致调试困难。
摘要由CSDN通过智能技术生成

最近学习到设计模式,现总结个人学习备责任链模式内容【注重的是每一个对象对其下个对象的引用】。
上一篇:Java设计模式-备忘录模式

定义

对象由每一个对象对其下家的引用而连接起来形成一条链,即责任链。职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。

优缺点

优点

  • 简化了对象。使得对象不需要知道链的结构。【链中的每一个节点不需要知道其他节点的内部形态】
  • 增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任。
  • 增加新的请求处理类很方便。【链条上添加节点,仅处理自己的逻辑即可】

缺点

  • 不能保证请求一定被接收。【每一个节点负责行为,可能一个类的行为出错整个链条崩溃】
  • 系统性能将受到一定影响,而且在进行代码调试时不太方便,可能会造成循环调用。

实现

代码

在这里插入图片描述
角色:

  • 链条节点抽象类:定义了抽象行为,以及定义了存放链的下一个节点的引用【类似指针指向下一个节点】。
  • 具体节点:对抽象行为的实现。
/**链条节点的抽象类
 * 链的关键记录链的下一个人,以及执行链的行为
 * @author cc百川
 */
public abstract class Chain {
   
	Chain nextnode;//存储下一个节点
	String nodename;//节点名称
	public Chain( String nodename) {
    
		this.nodename = nodename;
	}
	public  Chain setNextNode(Chain nextnode) {
   
		this.nextnode = nextnode;
		return this;
	}
	public abstract void doChain(User user);

} 
/** 乡村游医 【假定级别】
 * @author cc百川
 */
class VillageDoctor extends Chain{
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值