设计模式之责任链模式

什么是个责任?

当然是有事,不会推卸责任啊

为什么有个链?

因为你必须知道,这个责任得推给谁,一级一级往下推。

举个例子来说明,你们的老师(相当一个request)要求你们小组完成一项任务,你们小组A,B,C三个人,那你们怎么办?

但是老师,其实并不关注你们谁会做,可是,他关注你们做完没有,做的怎么样?

A来看这个任务,他发现他不会,可是他知道B的水平比他高,他不会就推给了B,让B来做

B来做这个任务,他还差点,还是没完成,但他知道C更厉害,于是,他也推给了C,

C拿来这个任务,果然,很快的解决了这个问题。

那么这个过程,就顺利的完成了。


有人问了,那还不是和传统的一样,每个人都调用一次?

但是,你可想到,假如A直接会做,那么B,C都没关系了,同样的B要会做直接就跳过了C。


1)       有多个的对象可以处理一个请求,哪个对象处理该请求运行时刻自动确定。

2)       你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。

3)       可处理一个请求的对象集合应被动态指定。


有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求



此处强调一点就是,链接上的请求可以是一条链,可以是一个树,还可以是一个环,模式本身不约束这个,需要我们自己去实现,同时,在一个时刻,命令只允许由一个对象传给另一个对象,而不允许传给多个对象。

关于这个链,是你自己去创建的,所以,不同的人,创建的方式也就不一样了。

看了一些,感觉这个最简洁:

http://zz563143188.iteye.com/blog/1847029

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值