JAVA23种设计模式——责任链模式

实际上,责任链模式是 一个请求(不管是用户的请求,系统的请求还是哪里来的请求),可以有很多个接收者,这些接受者自身每个都有适合处理这个请求的场景,如果满足自身的场景自己就会处理,如果不满足自己的使用场景就会调用下一个接收者的引用,并把请求传递给下一个接收者来处理,下一个接受者以此类推,所以责任链上的每一环都有对下一环的引用。

比如Struts2的拦截器,一个Action过来,第一道接收者是处理字符编码,如果不满足字符编码,我们进行字符编码的转换,然后如果满足放行条件第一道接收者就会调用下一个接收者,来进行密码的校验,如果第二道校验通过,会自动调用第三道接收者,第三道接收者开始校验权限,权限通过则放行,不通过则返回失败信息…
我们完全不需要知道它一环一环是怎么调用的,我们只需要知道它有这些功能,如果有一项不匹配(比如密码不对),肯定会在某一环被拦截下来,我们只需要把需求发送到责任链上接收的一端,就无需再关心它的实现细节。

接下来用另一个例子加深对责任链的理解,工厂流水线,自动化的,主要工作内容是自动化分拣出各种品质(个头大小)的苹果,贴上不同的价码销往不同的地方:
1.首先新建一个产品类,apple

public class Apple
{
   
	private int weight;//存放苹果的重量,单位是克
	public Apple(int weight){
   
		this.weight = weight;
	}
	public int getWeight(){
   
		return weight;
	}
}

2.建立一个分拣苹果设备需要继承的共同抽象类,里面主要写一些公共参数和方法,规范实现方法。

public abstract class Weighing{
   
	public Weighing nextWeighing;//存放对下一分拣设备的引用
	public void setWeighing(Weighing nextWeighing){
   
		this.nextWeighing = nextWeighing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值