设计模式之Chain of Rseponsibility

 

关于责任链模式的意图其实非简单,它可以让每个对象都有一次机会决定自己是否处理请求,以便于避免请求的发送者与接受者之间的耦合。在现实生活中也会有这样的情形,比如工厂的流水线上,工人的分工明确,每个工人只会负责自己的那部分职责,不是自己负责的操作,将交由下一个工人进行处理。而我在下面的代码中也会模拟一个责任链模式,只有满足条件的Command才对请求进行处理,并跳出责任链。

代码如下:

 

 

我为 context 设置为其执行操作的CommandName:"test.spring.CommandA",意图便是只有这个类才会对context进行操作,然后跳出责任链,其他的Command都不会对其进行操作,但是会继续交由责任链中的下一个Command对象来处理,直到走到正确的Command为止。

 

代码的执行结果如下:

 

result:execute command have CommandA

 

很明显在责任链中只有CommandA对Context对象进行了处理,其他的Command对其都是视而不见。而这样的设计意图也就是Chain of Responsibility的精髓所在。

 

好了责任链模式就介绍到这里,在下一篇中我将介绍Proxy模式。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值